Comment le texte est entreposé par G-Pascal
var Word:Integer;
begin
memc[$49] := 0;
for word:= $81 to $FF do if(word < $B0) or (word < $DE) then Writeln("equivant de ",word," est ",chr(word));
end.
Tout programme de enlevant les jetons écrit par l'utilisateur doit tenir compte du fait que le jeton ne se met pas entre guillemets car les caractères utilisés pour réservés aux mots réservés sont dans certains cas les mêmes que les symboles graphiques. Par exemple, essayez d'entrer une ligne dans l'éditeur en appuyant simultanément sur la touche Commodore+T. Il affichera un caractère graphique (fine barre horizontale). Maintenant, listez cette ligne et le mot «CURSOR» apparaîtra. Répétez maintenant le processus, cette fois en mettant le symbole graphique entre guillemets. Cette fois, il apparaîtra correctement. Cette situation montre que les routines de listage interne affichent le même caractère différemment selon qu'il se trouve ou non entre guillemets.
Les programmes ayant été entrés à l'aide d'un éditeur indépendant (et non de l'éditeur intégré G-Pascal) se compileront avec succès car le compilateur G-Pascal reconnaîtra soit ses mots réservés à jeton interne, soit les mêmes mots épelés en entier. Les programmes contenant des mots réservés n'étant pas en jetons seront automatiquement mise en jetons (et plusieurs espaces réduits au code à 2 octets) dès qu'une commande de remplacement est effectuée dans l'éditeur ayant un ou plusieurs espaces dans sa chaîne de caractères de remplacement. En d'autres termes, pour forcer les jetons complète d'un programme, entrez simplement :
R 1 ... |
Ce processus prend environ une seconde pour 100 lignes de code de programme.
Idiosyncrasies de jeton
Les jetons du code source présente les avantages d'une vitesse de compilation accrue, d'une taille de programme réduite et par conséquent d'un chargement et d'une sauvegarde plus rapides à partir du disque ou de la cassette. Il a également l'avantage que les espaces peuvent être librement utilisés avec la lisibilité de l'aide au programme, car 10 espaces ne prennent pas plus de place que 2 espaces. Cependant, dans certaines circonstances (rares), le processus de jeton peut provoquer un comportement étrange de la part de l'éditeur pouvant entraîner une confusion. Ceux-ci sont décrits ci-dessous ...
- Un espace sera toujours affiché après un mot réservé.
- Les mots réservés seront toujours affichés en minuscules, quelle que soit la façon dont ils sont entrés.
- Les mots réservés étant entreposés en interne sur un octet, les commandes «Find and Replace» de l'éditeur ne peuvent pas localiser une partie d'un mot réservé. Par exemple, vous ne pouvez pas trouver le 'BEG' dans 'BEGIN', ou 'PROC' dans PROCEDURE. Afin de localiser correctement les mots réservés, ils doivent être orthographiés en entier.
- Il est tout à fait permis de localiser une partie d'un mot non réservé, à moins que cette partie ne soit elle-même un mot réservé. En d'autres termes, tenter de localiser 'FR' localisera avec succès le mot 'FRED', mais essayer de localiser 'TO' ne localisera pas le mot 'TOOL' car 'TO' est un mot réservé.
- Comme plusieurs espaces sont entreposés sous la forme d'un code à 2 octets, les commandes "Find and Replace" ne peuvent correspondre qu'au nombre exact d'espaces (en se souvenant que l'espace s'affichant après un mot réservé n'est pas réellement entreposé dans le fichier et doit pas compté).
- Une ligne contenant des symboles de citation mal assortis peut s'afficher étrangement. Par exemple, tapez la ligne suivante comme ligne 1: BEGIN END REPEAT WHILE FOR DO. Utilisez ensuite la commande "Replace" pour remplacer BEGIN par un symbole de citation: R 1.BEGIN.". Les mots réservés auront été changés en lettres inverses ! Maintenant, débarrassez-vous du symbole de citation en disant: R1. "... Les mots réservés réapparaîtront !