INTERPRETEUR DE LANGAGE PERSONNALISABLE BIS

ketch68 Messages postés 4 Date d'inscription lundi 5 juillet 2010 Statut Membre Dernière intervention 22 août 2011 - 8 août 2011 à 17:39
ketch68 Messages postés 4 Date d'inscription lundi 5 juillet 2010 Statut Membre Dernière intervention 22 août 2011 - 22 août 2011 à 09:52
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/53427-interpreteur-de-langage-personnalisable-bis

ketch68 Messages postés 4 Date d'inscription lundi 5 juillet 2010 Statut Membre Dernière intervention 22 août 2011
22 août 2011 à 09:52
Bonjour Barbichette,

J'ai trouvé encore deux petits problèmes:

Violation d'accès si on met un ; en fin de ligne dans le code suivant:

function dec ();
{ }

L'instruction while ne fonctionne pas (violation d'accès):

a=true;
while (a) do {a=false}

Bonne journée.
cs_barbichette Messages postés 220 Date d'inscription lundi 30 octobre 2000 Statut Membre Dernière intervention 15 juillet 2013
17 août 2011 à 17:43
c'est un problème dans UParser (fonction Block je pense...).
Je vais regarder ça...
Merci
ketch68 Messages postés 4 Date d'inscription lundi 5 juillet 2010 Statut Membre Dernière intervention 22 août 2011
17 août 2011 à 15:10
Bonjour Barbichette.
Le problème de mémoire est bien réglé.
J'ai pu remarqué deux autres petits problèmes mineurs:
L' ommition de la fermeture de l'accolade provoque une mise en boucle du compilateur dans le code ci-dessous

for i from 1 to 15 do
{ println(i);

Une liste d'action vide provoque une violation d'accès lors de la compilation avec le code suivant

for i from 1 to 15 do
{ }
cs_barbichette Messages postés 220 Date d'inscription lundi 30 octobre 2000 Statut Membre Dernière intervention 15 juillet 2013
16 août 2011 à 06:44
Merci Ketch68.
J'ai regardé en détail cette affaire et j'ai corrigé le problème.
Il manquait 2 libérations d'objets TValue...
C'est pas grand chose, mais assez pour faire exploser la mémoire...
ketch68 Messages postés 4 Date d'inscription lundi 5 juillet 2010 Statut Membre Dernière intervention 22 août 2011
8 août 2011 à 17:39
Super travail...

Il y a cependant un petit problème de gestion de la mémoire mis en évidence avec le programme suivant:

a=0;
while (a<1000000)
{
inc(a);
println("a="~a);
}

Si l'on regarde dans le gestionnaire de tache on voit la consommation mémoire exploser jusqu'au plantage du programme.

Une fois ce problème réglé, ce code pourrait bien être très utile.

Slts et bravo.
Rejoignez-nous