Présentation d'aardio
aardio est un langage de script particulièrement adapté pour créer rapidement des outils et des utilitaires pour Windows. Sa syntaxe de base s'apparente fortement à JavaScript, ce qui le rend facile à appréhender si vous avez déjà une expérience dans le web. Cet article présente les concepts fondamentaux de la syntaxe, en établissant parfois des comparaisons avec Python pour faciliter la compréhension.
Pour approfondir votre apprentissage, plusieurs ressources sont utiles :
- La documentation officielle sur le forum aardio (
https://bbs.aardio.com/doc/reference/). - L'exploration des exemples de code fournis avec l'environnement de développement.
- La consultation des bibliothèques intégrées via la fonction "Aller à la définition".
Règles de syntaxe
Identifiants
Les identifiants de variables doivent commencer par une lettre, un souligné (_) ou le caractère dollar ($). Ils peuvent contenir des chiffres par la suite. Les noms sont sensibles à la casse. Une particularité importante : un identifiant commençant par un souligné (autre que \_ seul) est traité comme une constante, sa valeur ne peut être modifiée après définition.
Mots-clés
Le langage possède un ensemble de mots-clés réservés pour ses structures de contrôle et ses déclarations :
varpour déclarer une variable locale.defpeut être utilisé pour créer des alias pour d'autres mots-clés.functiondéfinit une fonction.classetctorservent à créer des classes.importcharge une bibliothèque.if,else,elseifgèrent les conditions.for,while,docontrôlent les boucles.try,catchpermettent la gestion des exceptions.returnrenvoie une valeur depuis une fonction.
Il est possible de créer des alias créatifs pour ces mots-clés :
def si = if
def sinon = else
def sinonSi = elseif
def tantQue = while
console.open();
var condition1 = 1;
var condition2 = 2;
si condition1 == condition2 {
console.log("Les valeurs sont égales.");
} sinon {
console.log("Les valeurs sont différentes.");
}
Instructions et commentaires
Les instructions peuvent être séparées par un point-virgule ; ou par un retour à la ligne.
var premiereVar = 10;
var deuxiemeVar = 20;
// Ceci est un commentaire sur une seule ligne.
/* Ceci est un commentaire
sur plusieurs lignes. */
Opérateurs
Opérateurs de base
Les opérateurs arithmétiques (+, -, *, /, %, **), de comparaison (==, !=, >, <, >=, <=) et logiques (&&, ||, !) suivent des règles classiques.
Opérateur de concaténation
L'opérateur ++ est utilisé pour concaténer des chaînes de caractères ou pour combiner une chaîne avec une autre valeur.
var partie1 = "Bonjour";
var partie2 = " le monde";
var salutation = partie1 ++ partie2; // "Bonjour le monde"
var texte = "Numéro: " ++ 123; // "Numéro: 123"
Opérateurs spéciaux
#: Retourne la longueur d'une chaîne ou le nombre d'éléments dans un tableau.::: Définit une variable globale..et[]: Accèdent aux membres d'un objet (champs, méthodes).$: Utilisé avant un chemin de fichier pour indiquer que le fichier doit être intégré dans l'exécutable compilé.
Types de données fondamentaux
La valeur nulle (null)
Toute variable non initialisée vaut null. C'est aussi la valeur par défaut pour les paramètres de fonction non fournis.
var valeurNonDefinie;
console.log(valeurNonDefinie); // Affiche: null
function maFonction(param) {
// Si aucun argument n'est passé, 'param' vaut 'null'.
console.log(param);
}
maFonction(); // Affiche: null
Les nombres
Les littéraux numériques supportent plusieurs bases :
var binaire = 2#1010; // 10 en décimal
var octal = 8#12; // 10 en décimal
var hexadecimal = 16#A; // 10 en décimal, ou 0xA
var separation = 1_000_000; // Équivaut à 1000000
Les chaînes de caractères
Les chaînes sont encodées en UTF-8. Elles peuvent être définies avec des guillemets doubles "", simples '', ou des backticks ````.
var avecGuillemets = "Ceci est une chaîne.";
var multiligne = "Ceci est
une chaîne multiligne.";
// Le saut de ligne dans les guillemets doubles est préservé.
Pour les conversions d'encodage (UTF-8 vers UTF-16 et inversement, nécessaire pour les appels API Windows), on utilise les fonctions string.toUnicode et string.fromUnicode.
Fonctions utilitaires intégrées
tostring(valeur [, base])
Convertit une valeur en sa représentation sous forme de chaîne. Le second paramètre optionnel permet de spécifier la base numérique (ex: 16 pour l'hexadécimal).
var decimalEnHex = tostring(255, 16); // Retourne "ff"
tonumber(chaîne [, base])
Tente de convertir une chaîne en nombre. Retourne la valeur numérique et le nombre de caractères consommés lors de la conversion.
var resultat, caracteresLus = tonumber("42ans"); // resultat=42, caracteresLus=2
type(objet)
Retourne une chaîne décrivant le type de l'objet passé en argument.
console.log(type(100)); // "number"
console.log(type("salut")); // "string"
console.log(type(null)); // "null"
sleep(ms)
Suspend l'exécution du thread courant pendant le nombre de millisecondes spécifié. À utiliser avec prudence dans une interface graphique, car elle bloque l'ensemble de l'application. Préférez win.delay dans ce contexte.