Syntaxe du langage
Tous les symboles et constructions de base de Nimba. Cette page liste la syntaxe en francais ; les memes structures existent dans les 7 autres langues.
Structure d'un programme
Tout programme Nimba est encadre par deux # sur leur propre ligne :
#
@Bonjour Nimba !
#
Une directive optionnelle langue "xx" en premiere ligne
precise la langue utilisee. Par defaut : francais.
Symboles essentiels
| Symbole | Nom | Description |
|---|---|---|
# |
Delimiteurs de programme | Tout programme Nimba est encadre par deux `#` sur leur propre ligne. |
&nom |
Variable | Variables prefixees par `&`. Ex: `&x = 5`. |
$NOM |
Constante | Constantes prefixees par `$`, non modifiables. Ex: `$PI = 3.14`. |
@ |
Affichage | Affiche du texte ou une valeur. `&x` est interpole. Ex: `@Bonjour &nom !`. |
@? |
Saisie | Lit une saisie utilisateur. Ex: `&n = @?Nom : `. |
? |
Si | Test conditionnel. Ex: `? &x > 0` ... `.`. |
?? |
Sinon (si) | Branche alternative. Suivi optionnellement d'une condition. |
..? |
Tant que | Boucle conditionnelle. Ex: `..? &i < 10` ... `&i++` ... `.`. |
:? |
Pour (range) | Iteration sur une plage. Ex: `:? 1..5, &i` ... `.`. |
:& |
Pour chaque | Iteration sur une collection. Ex: `:& &element, &tableau` ... `.`. |
. |
Fin de bloc | Ferme un bloc (fonc, classe, ?, boucles, ...). |
>< |
Concatenation | Concatene deux textes. Ex: `"Bon" >< "jour"` -> `"Bonjour"`. |
/// |
Modulo | Reste de la division entiere. Ex: `17 /// 5` -> `2`. |
^ |
Puissance | Exponentiation. Ex: `2 ^ 10` -> `1024`. |
-> |
Lambda | Fonction anonyme. Ex: `fonc(&x) -> &x * 2`. |
&x++ / &x-- |
Incrementation / decrementation | Equivalent a `&x = &x + 1` ou `&x = &x - 1`. |
.methode() |
Appel de methode | Appelle une methode sur une valeur. Ex: `"abc".majuscule()`. |
Exemples de chaque construction
Variables et affichage
#
&nom = "Aissatou"
&age = 25
@Bonjour &nom, vous avez &age ans !
#
Conditions
#
? &age >= 18
@Majeur
?? &age >= 13
@Adolescent
??
@Enfant
.
#
Boucles
#
:? 1..5, &i
@&i
.
:& &fruit, &fruits
@&fruit
.
..? &i < 10
@&i
&i++
.
#
Fonctions
#
fonc carre(&x)
retourner &x * &x
.
@carre(7)
#
Classes
#
classe Personne
fonc creer(&nom)
soi.nom = &nom
.
fonc saluer()
@Bonjour, je suis soi.nom
.
.
&p = nouveau Personne("Mamadou")
&p.saluer()
#
Gestion d'erreurs
#
essayer
&x = 10 / 0
attraper &e
@Erreur : &e
.
#