Tokeniseurs-Détokeniseur et Gestionnaire d'exécution des Tokens ancienne version.
10/08/2004:
- Préparation de l'en-tête pour le fichier tokenisé.
- Préparation du buffer de tokenisation.
- Réécriture complète du scanner, recherche de TAGS.
- Création des tables des tokens.
11/08/2004:
- Gestion approfondie des TAGS.
- Gestion des chaînes de caractères.
- Gestion des tokens REM et ' en début de ligne.
- Recherche de variables type tableaux ou simples variables.
- Identification de = comme affectation ou comparaison suivant le premier token de la ligne.
- Vérification syntaxe de base.
12/08/2004:
- Codage presque complet du tokeniseur.
- Début de codage de détokeniseur.
13/08/2004:
- Détection des parenthèses manquantes.
- Gestion &X ou &O ou &H pour le détokenisateur.
- Correction de bugs d'alignements tokeniseur.
- Pointage de l'erreur sur la bonne ligne.
- Meilleur gestion de la syntaxe.
- Gestion des constantes comme PI, signe pi, TRUE et FALSE.
- Gestion de la structure GOTO avec recherche de labels.
14/08/2004:
- Gestion complète de la structure GOTO.
- Détection des déclarations de labels.
- Début de codage de la phase de lecture du fichier tokenisé pour être executé.
- Reconstitution presque complète de la pile de TAGS.
15/08/2004:
- Algorithme de l'aiguillage évolué implanté.
- Correction de bugs surtout avec les chaînes de caractère et commentaires.
- Programmation du buffer d'execution.
- Création des tables des fonctions.
16/08/2004:
- Allocation des variables.
- Gestion des priorités de calculs.
- Implantation de toute la gestion de base de la pile ExcStack.
- Implantation de la fonction Print, Dim et Dim?.
- Gestion de Print At avec point virgule et apostrophe.
- Possibilité d'avoir une fonction qui se termine avec un point d'interrogation.
17/08/2004:
- Implantation de plus de 50 fonctions de bases avec correction de bugs.
- Amélioration de Upper$, Str$, String$.
- Optimisation sur l'affectation.
- Correction d'un bug des fonctions sans parenthèses dans ExprMake_MoveTags.
- Gestion de goto avec adressage optmisé.
- Gestion de IF, THEN, ELSE, ENDIF.
- Amélioration et correction de l'opérateur NOT.
18/08/2004:
- Correction de bugs avec l'opérateur NOT.
- Indentation automatique dans le détokeniseur pour If, Else, Endif.
- Conversion en majuscules des constantes.
23/08/2004:
- Ajout de ElseIf et gestion de Else If.
- Ajout des fonctions MKI$, MKL$, MKF$, Cvi, CVL, CVF.
- Ajout de Lower$, Setfont et Getfont.
- Gestion de Print At comme output en TI-Basic.
- Début de codage de Inkey$.
- Correction de bugs.
24/08/2004:
- Programmation de la fonction _kb_getkey. TI89/TI92+/V200.
- Ajout des combinaisons avec SHIFT.
25/08/2004:
- Correction d'un bug avec Mid$(.
- Accès d'un tableau à partir de l'index 1 à x au lieu de 0 à x-1.
- Le curseur de print n'est pas remis à son ancienne position après un print at.
- Programme d'exemple 'Inversion'.
- La fonction Int devient Fix (trunc).
- Ajout de la fonction Round qui prend le contenu de l'ancien algorithme de Int.
- Affichage du numéro de la ligne où s'est produit l'erreur.
- Ecriture de la chaîne de caractère dans le fichier de tokens d'executions au lieu de son adresse.
26/08/2004:
- Ajout de la structure Do ... Loop.
- Ajout de Exit If et Exit.
- Correction d'un bug de gestion hiérarchique avec Exit [If].
- Ajout de la structure Repeat ... Until Condition.
- Debut de programmation de la structure While condition...Wend. (Gros bug avec cette structure).
27/08/2004:
- Correction d'un bug avec les sauts.
- Programmation complète de la structure While condition ... Wend.
- Possibilité de quitter directement l'interpréteur.
- Gain en mémoire, projet à 58 Ko.
- Ajout de l'exposant E dans la fonction FloatToStr (...);
- Ajout des fonctions: Timer, System, Crslin, Crscol, Random, (Type), Val?, Varptr. Arrptr
- Correction d'un bug avec l'affichage d'une erreur lors de l'execution du code.
- Correction d'un bug donnant le mauvais numéro de ligne pour une erreur lors de l'execution du code.
28/08/2004:
- Correction du bug commentaire après Then Else...
- Finalisation du détokeniseur, plus d'erreurs d'espaces.
- Etallonage de l'auto int n°1 ainsi que des fonctions Timer et Pause.
- Auto int n°2 désactivée.
- Coordonnées de départ à 1,1 pour Print.
- Correction du bug de transtypage.
- Une division sous la forme X%/Y% provoque toujours un résultat du type Float.
- Ajout de la division entière avec Div ou \. Capable de faire X%\Y% et Trunc(X/Y).
- La fonction Dim commence à l'index 0 sur Atari ST soit Dim A(5) contient 6 éléments accessible de 0 à 5.
- Les tableaux commencent à l'index 0 et se terminent à l'index n, soit Dim A(5) contient 6 éléments.
- Ajout des fonctions Dfree, Poke, DPoke, LPoke, Peek, DPeek, LPeek.
31/08/2004:
- Optimisation de la pile NumStack, gain en vitesse important mais pas suffisant.
- Correction d'un bug avec le détokeniseur, Print(Timer-T)/200 devient Print (Timer-T)/200.
- Ajout de la fonction Box.
01/09/2004:
- Ajout de la fonction Input. (A améliorer niveau graphique).
- Programmation de la fonction _kb_flush et StrToFloat.
02/09/2004:
- Correction d'un bug avec le détokeniseur, ajout d'un espace après un token type COMMAND en fin de ligne.
03/09/2004:
- Amélioration de InpuStr.
- Correction d'un bug dans la fonction Input, = dans une condition au lieu de ==.
05/09/2004:
- Exportation des tables des tokens en fichier externe. Gain de 4 Ko.
- Correction d'un bug du détokeniseur avec un espace manquant entre une fonction et un opérateur logique comme Else If Not.
08/09/2004:
- Correction du bug avec une fonction en début de ligne soit Print "Text",(x+2)/500 par exemple.
- Correction du bug 'Memory' à l'ouverture d'un fichier texte avec l'éditeur de Texas. (Oublie de Unlocker l'handle du fichier ouvert).
- Correction d'un bug avec l'ajout de parenthèses pour la première fonction en début de ligne.
09/09/2004:
- Correction bug avec le layout du clavier TI92+/V200 (flèches directionnelles).
11/09/2004:
- Codage de l'optimisateur de calculs.
- Correction de la table des tokens au niveau des signes.
- Correction d'un bug avec l'opérateur NOT et les parenthèses dans MoveTags.
15/09/2004:- Ajout de la fonction TEXT avec gestion du paramètre 'l' comme sur Atari ST. (Sous demande de Onur alias Nounours
)
01/10/2004:
- Ajout de la fonction Plot.
02/10/2004:
- Gestion front montant avec Ngetchx (ajout de _kb_flush).
- Ajout des signes de comparaisons de la TI soit <=, >= et <> (différent de).
- Ajout du point après un flottant entier dans le détokeniseur.
- Transtypage correct pour les comparaisons, comparaisons possibles entre entiers et flottants.
- Bug avec Plot corrigé.
Réécriture complète du Gestionnaire d'Exécution des Tokens.
31/10/2004:
- Correction bug du scanner avec 'If -1 Then'.
05/11/2004:
- Ajout amélioration de syntaxe (exposant+signe négatif) soit par exemple -5.2e-32.
07/11/2004:
- Le token affec annonce ensuite une fin de ligne!. Gain de 10% en vitesse d'exécution!
11/11/2004:
- Les sauts se trouvent maintenant à une adresse quelconque et non à une adresse paire.
- Correction d'un bug. écriture des adresses par macro.
12/11/2004:
- Modification des sauts. Les tokens EOFLINE et CLEAR ne servent plus à rien. Economie sur la taille du fichier final d'exécution!
13/11/2004:
- Correction d'un bug avec la création des tokens. Parenthèse ajoutée entre Else ( If par exemple!
- Correction d'un bug de gestionde syntaxe avec le scanner. If >=10000 n'est plus autorisé.
- Correction d'un bug d'indentation automatique avec le détokeniseur. (Provoquait l'erreur 'Mémoire insuffisante').
- Correction bug du scanner. Affectation impossible après Print par exemple. l'affectation devient possible seulement pour une ligne commençant par une variable ou un tableau.
- Programmation de la boucle For...Next.
14/11/2004:
- Programmation de DownTo et Step pour la boucle For.
- Restructuration de la boucle For.
17/11/2004:
- Correction bug du scanner avec ,-.
- Correction bug du scanner avec var(-).
- Correction bug du Parser avec If pour Exit If et Else If.
- Signe - peut être utilisé comme négation (-) ainsi A=A*-3 est possible maintenant!
23/11/2004:
- Correction d'un bug de syntaxe avec double apostrophes soit par exemple Print 25''52.
26/11/2004:
- Correction d'un bug avec la négation pour les entiers dans la fonction d'optimisation des calculs.
04/12/2004:
- Supporte les signes mathématiques de la TI soit racine carrée, exponentielle de 1 et fonction exponentielle 'e^('.
- Création de la table des constantes. (RR_xxx par exemple, CALCULATOR...).
- Supporte les variables avec des tirets.
- Force le détokeniseur à mettre la première lettre après un tiret en majuscule.
- Correction bug de conversion string en flottant ou en entier.
- Extension signe négatif en - pour l'exposant soit 3.5e-5 autorisée.
- Codage des constantes terminée!
23/01/2005:
- Début de codage de la fonction DATA.
05/02/2005:
- Fin de programmation de la fonction DATA et programmation de la fonction ExprTokens_MakeFile (création d'un fichier GTK).
06/02/2005:
- Lecture correcte des paramètres de la fonction Read (variables et tableaux).
- Programmation de la gestion de la fonction Restore.
07/02/2005:
- Programmation de l'instruction Continue (Reboucle structure).
- Paramètre var facultatif après Next.
- Ajout du support de données sur 16 Bits. (DATA).
09/02/2005:
- Correction d'un bug avec les constantes dans le scanner .
11/02/2005:
- Correction d'un bug dans le scanner avec le signe négatif, (,-) autorisé maintenant.
18/02/2005:
- Correction d'un bug avec le signe de commentaire !.
- Amélioration du commentaire !, possibilité de rajouter des espaces avant.
20/02/2005:
- Possibilité d'utiliser directement une apostrophe (') devant Print.
03/03/2005:
- Gestion des Sauts (Goto) incorrectes. (Label ou Goto dans boucle For).
05/03/2005:
- Correction d'un bug de syntaxe avec "".
13/03/2005:
- Intégration de la gestion des procedures.
21/03/2005:
- Détermination des variables locales dans la dernière phase de tokenisation (pour GFA-TEM).
22/03/2005:
- Correction d'un bug avec la gestion des variables locales.
- Changement ordre des types de variables (Float, Integer, Bool, String).
- Codage de la phase de tokenisation GTK des variables locales.
4 Bits = Type de la variable (Flottant, Entier, Booléen, Chaîne de caractères).
12 Bits = Offset dans la pile de variables locales.
23/03/2005:
- Tokenisation correcte de l'instruction Local.
27/03/2005:
- Gestion complète des variables locales, Procédures et de Gosub.
29/03/2005:
- Correction d'un bug avec la gestion des - comme négation (-).
29/04/2005:
- Ajout d'un token effacant un item de la pile de boucles For.
01/05/2005:
- Instruction Run non suivie du numéro de ligne.
05/05/2005:
- Correction bug avec variables locales.
- Interdiction d'utiliser un Goto ou un Label hors d'une procédure.
07/05/2005:
- Ajout de l'abbréviation @ remplaçant Gosub.
- Possibilité d'écrire une variable, un label ou une procédure contenant des poins genre:
Procedure Graphic.Show(...) ou encore Game_IA.Show_Monster.
Bugs connus:
Transtypage incorrect sous la forme 52+63.2 Erreur de calcul. (Corrigé)
Mémoire insuffisante avec le code: (Corrigé)
Cls
Until TRUE
A=A+1
Commentaire sur un token ne demandant aucun argument: (Corrigé)
Else !Commentaire
Tri incorrect de la pile d'expression dans ExprMake.c (Corrigé)
Print "Temps d'execution"'(Timer-T)/200
La division n'est pas effectuée, l'interpréteur croit que la dernière parenthèse fermée concerne la fonction Print se qui est totalement faux.
Numéro de ligne incorrect dans la phase d'éxecution. (Corrigé)
Aucun affichage avec: (Corrigé)
Plot x*239,(1-y)*127.
Erreur de la pile d'expressions?
Bug affectation après Print par exemple, à transformer en conditon! (Corrigé)
Bug avec les signes de comparaison de la TI, soit par exemple (Corrigé)
Until I>=10000
Bug avec le signe de commentaire !. (Corrigé)
Bug avec Print (Timer-T%), le calcul n'est pas effectué! (Corrigé)
Bug avec Print Fre'I%, I% n'est pas affiché!