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.
Comentarios
Sección titulada «Comentarios»// Comentario de una línea
/* Comentario de varias líneas que puede incluir saltos de línea.*/Tipos primitivos
Sección titulada «Tipos primitivos»vacio: ausencia de valor.entero: números enteros con signo.número: valores de punto flotante.texto: cadenas Unicode.log: valores lógicos (verdaderoofalso).
vacio sin_valorentero edad = 27número temperatura = 22.5texto mensaje = "Hola"log activo = verdaderoLas 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())Valores JSON (jsn)
Sección titulada «Valores JSON (jsn)»jsn var persona = { nombre: "Ana", edad: 30, activo: verdadero, direcciones: [ { tipo: "casa", ciudad: "Guatemala" }, { tipo: "trabajo", ciudad: "Antigua" } ]}
texto ciudad = persona.direcciones[0].ciudadpersona.establecer("activo", falso)Variables y mutabilidad
Sección titulada «Variables y mutabilidad»Por defecto las variables son inmutables. Para permitir cambios se utiliza la palabra reservada var tras el tipo.
entero contador = 10 // Inmutableentero var mutable = 5 // Mutablemutable += 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.
Operadores
Sección titulada «Operadores»Aritméticos
Sección titulada «Aritméticos»entero a = 7entero b = 3
entero suma = a + bentero resta = a - bentero producto = a * bentero cociente = a / bentero residuo = a % bentero incremento = a++ // Operador postfijoentero decremento = b--Comparación y lógica
Sección titulada «Comparación y lógica»log igual = a == blog distinto = a != blog mayor = a > blog 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 !Operadores de asignación compuesta
Sección titulada «Operadores de asignación compuesta»entero var total = 0total += 5total -= 2total *= 3total /= 2Interpolación de texto
Sección titulada «Interpolación de texto»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}")Entrada y salida básica
Sección titulada «Entrada y salida básica»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.