Le compilateur avance à petit pas.
Il est basé sur PANORAMIC V 0.9.24 du 28 mars 2013, dont il reproduit les fonctionnalités... et les bugs ...
Une version alpha sera disponible dans un mois maximum. Elle sera volontairement limitée, car elle contiendra des bugs et je ne veux pas qu'elle soit utilisée en production ainsi.
L'EDITEUR lui aussi sera en version réduite (sans doute un seul onglet) car pour le moment, on ne peut compiler qu'un source qui se trouve dans le même répertoire que celui de l'EDITEUR, et avec un nom inférieur à 64 caractères.
Quelques modifications dans les habitudes de programmation avec l'interpréteur sont à prévoir.
Pour le moment, voici les différences:
1 - CHAINCHAIN agit sur un exécutable et non sur un source.
Si le fichier désigné par CHAIN n’existe pas, il n’y a pas d’affichage d’erreur.
2 - PRINT et point-virgulePRINT n'accepte pas de point virgule.
Au lieu de faire
print "valeur =";a%
il faut faire
print "valeur ="+str$(a%)
3 - Fichiers TEXTEFILE_WRITELN N,V n'accepte que des variables V$ chaine de caractères
FILE_READ N,V n'est pas accepté. Il faut faire V=FILE_READ(N)
FILE_READLN N,V n'est pas accepté. Il faut faire V=FILE_READLN(N)
Cela vient d'un choix. Il ne me parait pas judicieux d'affecter une variable dans les paramètres d'une commande.
J'ai décidé que toute affectation de variable se ferait par le nom de la variable suivi de =.
4 -Taille d'un tableau défini par une variablePour le moment, définir la taille d'un tableau avec une variable n'est pas possible:
dim a%
a%=10
dim b(a%)
5 - Définir des variables de même nom mais de type différentdim a%,a$,a n'est pas accepté
6 - Texture des objets 3D :Redéfinir une nouvelle texture à un objet 3D qui en possédait déjà une provoque un plantage.
J'ai cherché à résoudre ce problème pendant plusieurs jours sans y parvenir réellement et je mets de côté cette correction pour l'instant.
7 - Ce qui ne fonctionne pas correctement pour le moment :Les variables systèmes suivantes retournent toujours 0:
KEY_DOWN_CODE
KEY_DOWN_SPECIAL
KEY_UP_CODE
KEY_UP_SPECIAL
8 - Ce qui n'est pas complètement codé pour le moment :PARAM_NUMBER
PARAM_VALUE$()
SCANCODE
INKEY$
SUB / DIM_LOCAL / END_SUB
FREE
PEEK()
POKE
DATA
READ
RESTORE
PAUSE
EXECUTE
EXECUTE_WAIT
EXIT_FOR
EXIT_WHILE
EXIT_REPEAT
FILE_READBUF
APPLICATION_TITLE
FILE_WRITEBUF
FILE_FIND_CLOSE
FILE_NAMES_ADD
9 - Ce qui va changer pour les mêmes raisons que celles décrites pour les fichiers texte :FILEBIN_READ : sera remplacé par une fonction V=FILEBIN_READ()
FILEBIN_HEXA_READ : sera remplacé par une fonction V=FILEBIN_HEXA_READ()
FILEBIN_BLOCK_READ : sera remplacé par une fonction V=FILEBIN_BLOCK_READ()
FILEBIN_BLOCK_WRITE : sera remplacé par une fonction V=FILEBIN_BLOCK_WRITE()
9 - Ce qui ne fonctionnera jamaisParce dans l'exécutable généré par le compilateur il n'y a plus de notion de numéro de ligne, de nom de variable et de nom de label.
NUMBER_CURRENT_LINE
VARIABLE()
LABEL()
TRACE_ON
TRACE_OFF
10 - Une erreur de débordement de tableau ne sera pas signalée.Car il n'est pas possible en exécution de tester:
dim a%(10)
a%(100)=1
L'exécution de a%(100)=1 provoquera l'écriture de la valeur 1 probablement là où il ne faut pas et modifiera sans doute le code exécutable avec des conséquences imprévisibles ...
Voici le splash screen de ce compilateur: