Saltar al contenido

Manual verificado — sintaxis de superficie de ALB · programas .alb

Manual de AdaLogic BASIC (ALB)

Sintaxis segura para estudiantes y herramientas de escritura de código — basada en el analizador actual y las rutas del backend nativo. Todo lo siguiente es la hoja verificada. Demos ejecutables: galería de Ejemplos y docs/examples/*.alb.

Reglas generales

Esqueleto de programa

BEGIN
    VERSION 0.0.0.1

    CREATE_WINDOW "ALB APP", 960, 640

    ON TICK
        -- lógica de actualización
    END

    ON PAINT
        -- lógica de dibujo
    END

    LISTEN
END

Declaraciones

-- comentario
#MAX_ENTITIES = 64

LET score = 0
LET hp AS U16 = 100
LET name AS STRING = "ALB"

TYPE SmallHealth IS U16 RANGE 1 .. 255
TEMPORAL LET px AS I32 HISTORY 16 = 140

Tipos seguros para declaraciones

U0, U8, U16, U32, U64, S32, I8–I64, F64/REAL, PURE/RATIONAL, FLOAT2/FLOAT4, MAT2–MAT4, BOOL, STRING/BINARY, HW8/HW16/HW32.

Control de flujo

IF hp > 0 THEN
    LET alive = TRUE
ELSE
    LET alive = FALSE
END IF

WHILE hp > 0
    LET hp = hp - 1
END WHILE

FOR i = 1 TO 10 THEN
    PRINT i
END FOR

MATCH mode
    0 => state = 1
    ELSE => state = 99
END MATCH

MATCH usa brazos con => (no CASE). SELECT usa CASE. Prefiere el IF multilínea para ramas con varias acciones.

Funciones y módulos

FUNCTION Twice(x AS U32) AS U32
    RETURN x + x
END FUNCTION

FUNCTION PCT_X(percent AS S32) AS S32
    RETURN CAST((S32(VIRTUAL_WIDTH) * percent) / 100 AS S32)
END FUNCTION

MODULE MathKit BEGIN
    FUNCTION Add2(x AS U32) AS U32
        RETURN x + 2
    END FUNCTION
END MODULE

IMPORT MathKit

Arreglos (base 1)

STRICT cells[64] AS U16
LET cells[1] = 10

PARALLEL swarm[128]
    x AS S32
    y AS S32
    hp AS U16
END PARALLEL

LET swarm[1].x = 100
SWAPPOP swarm[dead_slot], active_count

Gráficos

CREATE_WINDOW "Demo", 320, 200
CLEAR $050511
COLOR $FF3300
FILL RECT x, y, w, h
DRAW LINE x1, y1, x2, y2
TEXT 8, 8, "HELLO"
DRAW TEXT 8, 24, "SCORE: " | score_s

| y & concatenan cadenas (no son OR bit a bit). Las operaciones bit a bit usan OR / XOR / AND.

Entrada y entorno

PRINT "HP=" | hp
INPUT "Name", player_name
LET pressed = KEY(4)
LET mx = MOUSE_X
LET vw = VIRTUAL_WIDTH

Usa KEY(code), no KEY_STATE(code).

Programas de ejemplo

hello.alb

BEGIN
    VERSION 0.0.0.1
    PRINT "Hello from AdaLogic BASIC!"
    LISTEN
END

greeter.alb

BEGIN
    VERSION 0.0.0.1
    LET name AS STRING = "friend"
    INPUT "What should we call you?", name
    PRINT "Hello, " | name | "!"
    LISTEN
END

count.alb

BEGIN
    VERSION 0.0.0.1
    FOR i = 1 TO 10 THEN
        PRINT i
    END FOR
    LISTEN
END

window_paint.alb

BEGIN
    VERSION 0.0.0.1
    CREATE_WINDOW "ALB Square", 320, 240
    ON PAINT
        CLEAR $101018
        COLOR $0B6BCB
        FILL RECT 40, 40, 80, 80
        COLOR $E8F1FB
        TEXT 40, 140, "FILL RECT demo"
    END
    LISTEN
END

cells.alb

BEGIN
    VERSION 0.0.0.1
    STRICT cells[8] AS U16
    FOR i = 1 TO 8 THEN
        LET cells[i] = i * 10
    END FOR
    PRINT "cells[1]=" | cells[1]
    LISTEN
END

Ruta de práctica

  1. BEGIN / PRINT / LISTEN (VERSION opcional)
  2. LET con tipos + IF / FOR
  3. INPUT + concatenación con |
  4. CREATE_WINDOW + ON PAINT
  5. Arreglos STRICT (base 1)
  6. Comparte a través de la Consola

Errores comunes

Documentos fuente

Inicio · Acerca de