Reference

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
.
#