Saltearse al contenido

Sintaxis básica

Lenguaje Quetzal utiliza una sintaxis limpia sin punto y coma. Cada instrucción ocupa su propia línea o bloque y las palabras clave están en español.

// Comentario de una línea
/*
Comentario de varias líneas
que puede incluir saltos
de línea.
*/
  • vacio: ausencia de valor.
  • entero: números enteros con signo.
  • número: valores de punto flotante.
  • texto: cadenas Unicode.
  • log: valores lógicos (verdadero o falso).
vacio sin_valor
entero edad = 27
número temperatura = 22.5
texto mensaje = "Hola"
log activo = verdadero

Las listas se declaran con lista y pueden ser tipadas o no tipadas.

lista<entero> numeros = [1, 2, 3]
lista valores = [1, "dos", verdadero]
lista<texto> vacia = []

Las listas mutables usan var y permiten métodos como agregar, ordenar o sumar.

lista<texto> var frutas = ["manzana", "naranja"]
frutas.agregar("pera")
consola.mostrar(frutas.texto())
jsn var persona = {
nombre: "Ana",
edad: 30,
activo: verdadero,
direcciones: [
{ tipo: "casa", ciudad: "Guatemala" },
{ tipo: "trabajo", ciudad: "Antigua" }
]
}
texto ciudad = persona.direcciones[0].ciudad
persona.establecer("activo", falso)

Por defecto las variables son inmutables. Para permitir cambios se utiliza la palabra reservada var tras el tipo.

entero contador = 10 // Inmutable
entero var mutable = 5 // Mutable
mutable += 1
lista<entero> var datos = [1, 2]
datos.agregar(3)

Las listas y JSON declarados dentro de funciones pueden ser mutables sin var cuando el intérprete necesita modificar su contenido temporalmente, pero se recomienda declarar la intención de forma explícita.

entero a = 7
entero b = 3
entero suma = a + b
entero resta = a - b
entero producto = a * b
entero cociente = a / b
entero residuo = a % b
entero incremento = a++ // Operador postfijo
entero decremento = b--
log igual = a == b
log distinto = a != b
log mayor = a > b
log menor_o_igual = a <= b
log conjuncion = (a > 5) y (b < 10) // También se puede usar &&
log disyuncion = (a > 5) o (b < 10) // También se puede usar ||
log negado = no conjuncion // También se puede usar !
entero var total = 0
total += 5
total -= 2
total *= 3
total /= 2

Las cadenas interpoladas se declaran con el prefijo t y permiten incrustar expresiones dentro de llaves {}.

texto nombre = "Lucía"
consola.mostrar(t"Hola, {nombre}")

Los métodos de consola permiten enviar mensajes y solicitar datos.

texto usuario = consola.pedir("Nombre:")
consola.mostrar_exito(t"Bienvenido {usuario}")

Con estos elementos puedes leer el resto de los fundamentos y construir programas más complejos.