Pourquoi
Le parser actuel manquait clairement de clarté et pouvait paraître illisible pour les curieux qui souhaitaient regarder le code source.
Par ailleurs beaucoup plus d'éléments seront présents de base comparé à la V2 qui ressemblait à une mini base sans vraiment beaucoup de contenu.
Contenu
Globalité
- Suppression des ;pour simplifier l'écriture et la compréhension du langage.
 Ainsi il est possible de faire par exemple, sans problème :variable entier a -> 5 envoyer "cc"ouvariable entier a -> 5 envoyer a
envoyer
L'instruction envoyer a toujours la même syntaxe sauf lorsqu'on envoi plusieurs valeurs dans un seul et même "envoyer".
Suite à la suppression des ";" j'ai décidé de rajouter un truc à l'instruction envoyer:
envoyer [ valeur1 valeur2 valeur3 valeur4 ... ]
Exemple: envoyer [ "cc" "yo, " 10 ". I am " 10.5 " yo !" ]
https://program-4.gitbook.io/french-programming-language/instructions/le-print
saisir
Même principe qu'avant sauf que cette fois-ci, si le type précisé n'est pas équivalent à la réponse donné, la variable sera de type texte et aura la valeur vide
Exemple:
saisir texte a
envoyer ["Valeur recuperer: " a ]
saisir entier age -> "Age: "
envoyer ["Valeur recuperer (vide): " age ]
On aura:
c
Valeur recuperer: c
Age: a
Valeur recuperer (vide): vide
https://program-4.gitbook.io/french-programming-language/instructions/les-entrees-claviers
fichier
Nouvelle syntaxe, exemple:
fichier lire content "file_to.txt"
envoyer content
fichier ecrire "file_to.txt" -> "Salut la compagnie ! "
fichier lire c "file_to.txt"
envoyer c
https://program-4.gitbook.io/french-programming-language/instructions/les-fichiers
Variables constantes et globales
Deux instructions font leur apparition : constante et globale ces dernières peuvent être combiné pour qu'une variable soit constante et globale par exemple :
constante entier a -> 10
envoyer a
constante globale entier c -> 1
envoyer c
globale texte ms -> "Bienvenue !"
envoyer ms
globale constante texte msg -> "BEYE NOOB"
envoyer msg
10
1
Bienvenue !
BEYE NOOB
verifier
Pas spécialement une nouvelle syntaxe depuis la dernière mise à jour mais les bugs concernant les verifier dans des verifier est résolu (vous pouviez avoir des erreurs avec 'Inconnu' car il ne reconnaissait pas les différent blocs).
variable entier a -> 5
verifier a {
    cas 0:
        envoyer "Salut"
        ,
    cas 5:
        variable entier b -> 10
        verifier b {
            cas 10:
            envoyer "Bye"
            ,
            cas 25:
            envoyer "++"
            ,
        }
    ,
}
Bye
tant que -> tantque
Le nom de l'instruction est maintenant tout attaché au lieu de "tant que" on aura "tantque".
Pour les actions, c'est dès maintenant augmenter et diminuer !
variable entier i -> 2
variable entier a -> 10
variable entier z -> 3
tantque i > 0, diminuer 1 {
    tantque a >= 0, diminuer 5 {}
    tantque z >= 0, diminuer 1 {}
}
envoyer a
envoyer z
changer i -> 2
changer a -> 10
changer z -> 3
tantque i > 0, diminuer 1 {
    tantque a > 0, diminuer 5 {}
    tantque z > 0, diminuer 1 {}
}
envoyer a
envoyer z
0
0
5
1
math
Nouvelle syntaxe: math VAR_NAME [ CALCUL ]
Le type de base d'une variable déclaré avec math est toujours decimal
math a [ 10 + 5 - 2 ]
envoyer a