Manuel — syntaxe ALB vérifiée · programmes .alb
Manuel AdaLogic BASIC (ALB)
Syntaxe sûre pour les personnes qui apprennent et les outils qui écrivent du code, fondée sur le parseur et les backends actuels. Des programmes exécutables se trouvent dans la galerie d’exemples.
Règles générales
- Les mots-clés ne distinguent pas majuscules et minuscules.
- Les commentaires utilisent
--, pasREM. - La plupart des commandes suivent une forme d’instruction.
- Les tableaux commencent à l’indice 1.
VERSION 0.0.0.1aprèsBEGINest facultatif mais recommandé.- N’utilisez pas un mot réservé comme identifiant.
Squelette d’un programme
BEGIN
VERSION 0.0.0.1
CREATE_WINDOW "ALB APP", 960, 640
ON TICK
-- logique de mise à jour
END
ON PAINT
-- logique de dessin
END
LISTEN
END
Déclarations
-- commentaire
#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
Types de déclaration sûrs
U0, U8, U16, U32, U64, S32, I8–I64, F64/REAL, PURE/RATIONAL, FLOAT2/FLOAT4, MAT2–MAT4, BOOL, STRING/BINARY et HW8/HW16/HW32.
Contrôle du déroulement
IF hp > 0 THEN
alive = TRUE
ELSE
alive = FALSE
END IF
WHILE hp > 0
hp = hp - 1
END WHILE
FOR i = 1 TO 10 THEN
PRINT i
END FOR
MATCH mode
0 => state = 1
ELSE => state = 99
END MATCHMATCH emploie des branches =>. SELECT emploie CASE.
Fonctions et modules
FUNCTION Twice(x AS U32) AS U32
RETURN x + x
END FUNCTION
MODULE MathKit BEGIN
FUNCTION Add2(x AS U32) AS U32
RETURN x + 2
END FUNCTION
END MODULE
IMPORT MathKit
Tableaux à partir de 1
STRICT cells[64] AS U16
cells[1] = 10
PARALLEL swarm[128]
x AS S32
y AS S32
hp AS U16
END PARALLEL
swarm[1].x = 100
SWAPPOP swarm[dead_slot], active_count
Graphismes
CREATE_WINDOW "Demo", 320, 200
CLEAR $050511
COLOR $FF3300
FILL RECT x, y, w, h
DRAW LINE x1, y1, x2, y2
TEXT 8, 8, "BONJOUR"
DRAW TEXT 8, 24, "SCORE: " | score| et & concatènent les chaînes ; ils ne représentent pas un OU bit à bit. Utilisez OR, XOR et AND pour les opérations binaires.
Entrées et environnement
PRINT "HP=" | hp
INPUT "Nom", player_name
LET pressed = KEY(4)
LET mx = MOUSE_X
LET vw = VIRTUAL_WIDTHUtilisez KEY(code), et non KEY_STATE(code).
Parcours pratique
BEGIN,PRINT,LISTENLETtypé,IF,FORINPUTet concaténation|CREATE_WINDOWetON PAINT- Tableaux
STRICTcommençant à 1
Erreurs fréquentes
- N’inventez pas de formes d’appel absentes du manuel.
- Pour les retours arithmétiques mixtes, préférez
RETURN CAST(expr AS Type). ASSERT(expr)est une assertion d’exécution ;ASSERT pred(...)concerne la base logique.- N’utilisez pas de mots réservés comme noms de champs.