Bonjour,
Une nouvelle version bêta est disponible : 1.99.2 β
Cette version m'a fait mentir sur pas mal de chose.... Et oui, comme en politique, on attire les personnes avec un beau programme... et à la fin, on fait exactement l'inverse !
J'ai voulu faire des concessions entre garder une certaine compatibilité avec les anciennes versions de Linotte et introduire une syntaxe toute neuve.
Je me suis retrouvé face à des murs, en tant que développeur non normal, il m'a fallut prendre des décisions non populaires....
- La retrocompatibilité du langage de fonctionne pas comme dans la première version beta... il faut l'activer dans le menu Outils[/*2njal5x1]
- Le format des commentaires a changé.... on n'utilise plus ("") mais /**/ ... même les anciens livres doivent prendre en compte ce changement... Je vais expliquer plus loins les raisons de ce changement.[/*2njal5x1]
- J'ai introduit le mot clé "fonction"... la notion de paragraphe disparait.[/*2njal5x1]
- Le présent n'est plus présent (!) sauf en cas de compatibilité 1.X[/*2njal5x1]
- C'est déjà pas mal non ?[/*2njal5x1]
Le fait de supprimer la première ligne indiquant le nom du livre a été compliqué.
Voici un ancien livre :
[php]
Nom du livre :
Nom du paragraphe :
Actions :
Affiche "Bonjour"
[/php]
Un livre sans le nom du livre :
[php]
Nom du paragraphe :
Début
Affiche "Bonjour"
[/php]
En supprimant le nom du livre, l'analyse syntaxique du livre était perturbée car en gardant la rétrocompatibilité, il ne savait plus différentier le nom d'un livre ou celui d'un paragraphe. C'est pour cela que j'ai ajouté le mot clé "fonction"
La nouvelle syntaxe est maintenant :
[php]
fonction nom de la fonction
début
affiche "Bonjour"
[/php]
Pour le changement de format des commentaires, regardez l'exemple suivant pour comprendre :
[php]
fonction auto-congratulation
début
affiche message("Cpc")
fonction message
* nom :: texte
début
retourne "Tu es bien trop fort " + nom + " !"
[/php]
("Cpc") est un commentaire ou un paramètre de fonction ?
" title="Tongue" /> il y a quand même une très bonne nouvelle ! J'ai travaillé sur la notion de bibliothèque et corrigé quelques gros bogues.
J'ai ainsi modifié l'exemple Tri Rapide de Wam afin d'utiliser plusieurs livres et découper son programme très proprement par fonctionnalités :
Tri_Rapide.liv[php]
/*
version : 1
Date de création du projet : 08/08/2012
Date de création de cette version : 08/08/2012
Auteur : Wam
*/
bibliothèque
générateur référence GénérateurNombres.liv
chrono référence chronometre.liv
globale
tableau :: casier de nombre
indice_pivot :: nombre
max <
- 1000
chemin <
- "c:/temp/nombres.txt"
fonction principale
pivot :: nombre
taille :: nombre
i :: nombre
test :: drapeau <
- vrai
temps :: texte
début
efface tableau
parcours remplissageNombres de générateur avec max, chemin
parcours chargementCasierNombres de générateur avec tableau, chemin
parcours start de chrono
mesure tableau dans taille
tant que test == vrai, lis
indice_pivot = 0
pivot vaut tableau{indice_pivot}
test vaut faux
pour i de 1 à taille -1, lis
si (tableau{i}) <
pivot, lis
test = vrai
parcours echanger avec i, indice_pivot
ferme
si (tableau{i}) >
pivot, lis
pivot = tableau{i}
indice_pivot = i
ferme
ferme
ferme
parcours stop de chrono avec temps
affiche tableau
affiche "Le tri a été effectué en " + temps + " secondes"
fonction echanger
*a :: nombre
*b :: nombre
temp :: nombre
début
temp = tableau{a}
tableau{a} = tableau{b}
tableau{b} = temp
indice_pivot = a
reviens
[/php]
GénérateurNombres.liv[php]
fonction principale
début
affiche "Ne pas exécuter directement ce livre !"
fonction remplissageNombres
* max :: nombre
* chemin :: texte
connecteur :: fichier
début
ouvre connecteur avec "écrasement" depuis chemin
pour chaque max, lis
charge hasard(max * 10) dans connecteur
ferme
ferme connecteur
reviens
fonction chargementCasierNombres
* casier :: casier de nombres
* chemin :: texte
connecteur :: fichier
début
ouvre connecteur avec "lecture" depuis chemin
décharge casier depuis connecteur
ferme connecteur
reviens
[/php]
chronometre.liv[php]
globale
_seconde & _minute & _heure :: nombre
fonction principale
début
affiche "Ne pas exécuter directement ce livre !"
fonction start
début
_seconde vaut seconde
_minute vaut minute
_heure vaut heure
reviens
fonction stop
* temps :: texte
tmp_seconde :: nombre <
- seconde
tmp_minute :: nombre <
- minute
tmp_heure :: nombre <
- heure
début
temps vaut tmp_heure * 3600 + tmp_minute * 60 + tmp_seconde - (_heure * 3600 + _minute * 60 + _seconde)
reviens
[/php]
Découvrez et téléchargez cette version depuis cette page :
Cette version n'est pas sans bogues... surtout autour des commentaires...
Bon mois d'août !