[TUTO] Le compilateur en mode « Standby »
Publié : sam. 21/févr./2009 4:03
ça me turlupinait un temps de ne rien trouver à ce sujet. (Si j'ai loopé un tel sujet, son auteur m'en voit désolé). Mais j'ai été surpris de découvrir l'aide dans le répertoire SDK (grâce à un gars du forum anglais)
de PB (à mon nez et à ma barbe...).
Je poste la traduction de ces quelques
instructions.
___________________________________________________________
_______________________
Le compilateur PUREBASIC
______________________
Interface de communication avec éditeurs et scripts
____________________________________________________________
Compatibilité
Nous [la PBTeam] essayons de garder la compatibilité avec les anciennes
versions autant que possible, donc les anciens editeurs/
scripts peuvent encore fonctionner avec les nouvelles
versions de PB.
Les exceptions seront inscrites dans ce document fourni avec
chaque nouvelle version de compilateur.
Les anciennes versions de PB pour Windows (< 4.00)
utilisaient une Interface qui n'est plus valable pour les
versions récentes (> Version 4.00). Donc, si vous utilisiez
cette Interface, il vous faut faire la mise à jour.
Generalités
Quand le compilateur est démarré avec l'option /STANDBY (sous
Windows) ou l'option --standby (sous Linux et Mac), il va
attendre les commandes depuis l'entrée standard et répondre
vers la sortie standard. Cela permet de contrôler le
compilateur depuis un language ou script capable d'accéder
au canal standard du programme.
Sous PB, la librairie 'Process' permet cet échange
d'information.
Les commandes doivent être données sous forme de texte terminé
par un code de retour chariot (code ASCII 13, #CRLF ou #LF).
Il est important de respecter cette syntaxe sinon le compilateur
va mal réagir. La fonction 'WriteProgramStringN()' de la
librairie 'process' assure bien cette manoeuvre.
D'autres language ont cette même fonction comme fflush() en C.
Une commande doit être écrite en majuscule en début de ligne,
suivi d'éventuels arguments séparés par une tabulation.
(Les tabulations sont Notées <T> dans ce document).
Il ne doit pas y avoir d'espace, sauf s'ils appartiennent à un
des arguments d'une commande.
Excepté au démarrage, le compilateur écrira tout dans la sortie
standard en tant que réponse à une commande envoyée. Donc, vous
avez besoin de vérifier l'arrivée d'une réponse uniquement après
l'envoi d'une commande.
Le retour de réponse dépend donc uniquement du fait que l'on
envoie des commandes. Si rien n'est envoyé, la réponse est une
ligne unique de départ.
Dès le démarrage, le compilateur écrit cette ligne:
STARTING<T><VersionNr><VersionString>
<VersionNr> contient le numéro de version du compilateur sous
la forme '4.30'
Cette valeur peut être utilisée pour déterminer quelles commandes
sont supportés par le compilateur.
<VersionString> est la version du compilateur sous la forme
'PureBasic 4.10 (Windows - x86)'.
Ensuite, le compilateur charge ses librairies, et indique la ligne
suivante:
READY
- Le compilateur a fini son chargement initial et est prêt
à fonctionner
ERROR<T><Message>
- Le compilateur ne peut pas fonctionner
correctement pour les raisons données dans le message.
ERROR<T>SUBSYSTEM<T><SubsystemName>
- Le compilateur ne trouve pas le sous-système spécifié
Après le message 'READY', le compilateur attend désormais les
commandes sur le canal d'entrée standard.
Par contre, après un message 'ERROR', le compilateur s'arrête
immédiatement.
Sous-système et mode unicode
Les options de librairie sous-système et d'unicode ne peuvent
être modifiées pendant le fonctionnement du compilateur.
Pour effectuer un tel changement, le compilateur doit être
redémarré. C'est pourquoi ces deux types d'options sont
indisponibles ici. Ces deux types d'options doivent être
spécifiées dans la ligne de commande, au démarrage du
compilateur, au même titre que l'option /STANDBY.
Commandes supportées
(Depuis la version 4.10)
END
Ordonne au compilateur de s'arrêter
Paramètre(s) : Aucun
Réponse(s) : Aucune
SOURCE<T><FichierSource>
Indique au compilateur le nom du fichier source
pour la prochaine comilation
Paramètre(s) : Le nom du fichier source. (Il doit contenir
l'intégralité du chemin d'accès)
Réponse(s) : Aucune
SOURCEALIAS<T><SouceFile Alias>
Indique au compilateur le nom du fichier qui sera retourné dans
la constante #PB_Compiler_File pour le code source principal
à la place du nom de fichier spécifié par la commande SOURCE.
C'est utile pour les éditeurs qui compilent à partir d'un fichier
temporaire, mais qui veulent que le fichier source réel soit
reporté ici.
Paramètre(s) : Le nom du fichier (doit contenir l'intégralité du
chemin d'accès)
Réponse(s) : Aucune
INCLUDEPATH<T><Chemin>
Indique au compilateur quelles instructions de tous les
'FichierDInclusion' seront pris en compte. Cela permet de
mettre le fichier source dans répertoire temporaire en incluant
les fichiers relatifs au chemin d'origine. Si le chemin d'inclusion
n'est pas spécifié, le chemin du fichier source est utilisé par défaut.
Paramètre(s) : Le chemin d'accès. Il doit être complet et terminé
par un caractère '\' ou '/' (selon l'OS)
Réponse(s) : Aucune
RESOURCE<T><File>
(Pour Windows uniquement) Spécifie un script ressource (*.rc) à
inclure dans la compilation.
Paramètre(s) : Le nom de fichier. (doit contenir le chemin complet)
Réponse(s) : Aucune
ICON<T><File>
Spécifie une icône pour l'application
Paramètre(s) : Le nom de fichier. (doit contenir le chemin complet)
Réponse(s) : Aucune
Types de fichier supportés:
Windows : *.ico
MacOSX : *.icns
Linux : Non supporté
TARGET<T><FichierCible>
Spécifie le fichier cible pour la prochaine compilation.
Paramètre(s) : Le nom de fichier. (doit contenir le chemin complet)
Réponse(s) : Aucune
CONSTANT<T><ConstantDefinition>
Définit une constant pour la prochaine compilation.
Paramètre(s) : La ligne définissant intégralement la constante
Réponse(s) : Aucune. Si la définition venait à créer une erreur, cette
erreur n'apparaîtra qu'à la prochaine compilation.
Note : C'est la même règle pour l'option /CONSTANT dans la ligne
de commande. Ce qui signifie que la syntaxe doit être du type
"NAME=Value" sans le caractère '#' et sans espace autour du
signe '='. Cela signifie aussi que les nombres seront interprétés
comme des constantes numériques alors que toute expression
autre qu'un nombre sera considérée comme une constante
chaîne.
LINKER<T><FichierCommandeLieur>
Spécifie les options de la ligne de commande pour le lieur
(Semblable à l'option /LINKER de la ligne de commande)
Paramètre(s) : Un nom de fichier contenant les commandes
pour le lieur (doit contenir le chemin complet)
Réponse(s) : Aucune
COMPILE<T><FlagsList>
Démarre la compilation avec un fichier source, un fichier
cible et les drapeaux d'état préalablement spécifiés.
Paramètre(s) : Liste des drapeaux d'état séparés par une
tabulation.
Drapeaux d'état possibles :
DEBUGGER - Compilateur avec débogueur
INLINEASM - Autorise l'assembleur en ligne
DLL - Crée un DLL
XPSKIN - Active les skins XP (Windows uniquement)
ADMINISTRATOR - Mode administrateur sous Vista (Windows uniquement)
USER - Mode utilisateur (Windows uniquement)
CONSOLE - Crée un exécutable en mode console (Windows uniquement)
ONERROR - Autorise les instructions de la librairie OnError
MMX - Crée un exécutable optimisé MMX
3DNOW - Crée un exécutable optimisé 3DNOW
SSE - Crée un exécutable optimisé SSE
SSE2 - Crée un exécutable optimisé SSE2
DYNAMICCPU - Crée un exécutable compatible à tous les CPUs
THREAD - - Crée un exécutable avec sécurisation des threads
PROGRESS - Indique la progression de la compilation (Cf plus bas)
WARNINGS - Affiche les messages d'avertissement (Ver 4.30 Cf plus bas)
Exemple: 'COMPILE<T>DEBUGGER<T>THREAD' compilera avec le
débogueur et avec la sécurisation des threads
Après que la commande ait été exécutée (avec ou sans succès),
toutes les options (SOURCE, TARGET, ICON, RESOURCE,
INCLUDEPATH, CONSTANT, LINKER) seront effacées.
Elles ont donc besoin d'être à nouveau spécifiées par la suite
pour une future compilation.
Réponse(s) :
Si le drapeau d'état PROGRESS est spécifié, le compilateur
répondra par une ou plusieurs des lignes suivantes :
PROGRESS<T>INCLUDE<T><FileName> - un nouveau fichier est inclu
PROGRESS<T>LINES<T><LinesCount> - renseigne de la progression
toutes les 1000 lignes ainsi qu'à la fin totale de la lecture
PROGRESS<T>ASSEMBLING - indique que l'assemblage est accompli
PROGRESS<T>LINKING - indique que les liens sont accomplis
De nouveaux indicateurs de progression devraient voir le jour à l'avenir, donc
pour assurer la compatibilité future, les lignes de réponse sous la forme
'PROGRESS<T>XXX' et qui ne sont pas comprises doivent être ignorées.
Pour les versions 4.30 et ultérieures, si le drapeau d'état 'WARNINGS' est
spécifié, le compilateur est susceptible d'émettre des messages
d'avertissement. La séquence est comme le modèle qui suit :
WARNING<T><Source NumeroLigne>
Un message d'avertissement est émis pour la ligne donnée
Ce qui suit est un nombre de lignes d'informations optionnelles terminé par
la ligne 'OUTPUT<T>COMPLETE'.
A l'avenir, il pourra y avoir plus de lignes en guise de réponse, donc pour
assurer la compatibilité future, il est recommandé de lire toutes les lignes
jusqu'à ce que la ligne 'OUTPUT<T>COMPLETE' soit atteinte en ignorant
ce qui est non identifiable.
INCLUDEFILE<T><NomFichier><T><NumeroLigne>
L'erreur décelé se situe dans un fichier d'inclusion. Les arguments
indiquent donc le nom de fichier et la ligne mise en cause dans le
fichier d'inclusion.
MESSAGE<T><Texte>
Le message d'avertissement actuel.
OUTPUT<T>COMPLETE
Indique la fin de la séquence d'avertissement.
Quand la compilation est effectuée, la réponse peut être :
SUCCESS
La compilation s'est passé correctement
ERROR<T>SYNTAX<T><Source NumeroLigne>
Une erreur a été détectée durant la compilation du code PB
L'argument <Source NumeroLigne> donne le numéro de ligne
où l'erreur s'est produite.
Ce qui suit est un ensemble d'informations optionnelles se
terminant toujours par le signal 'OUTPUT<T>COMPLETE'
A l'avenir, d'autres types de réponse pourront être ajoutées
donc... pour assurer... la compatibilité, il est... recommandé
de lire toutes les lignes jusqu'à ce que la ligne
'OUTPUT<T>COMPLETE' soit atteinte, en ignorant les lignes
qui ne sont pas identifiables.
INCLUDEFILE<T><NomFichier><T><NumeroLigne>
Une erreur s'est produite dans un fichier d'inclusion. Les
arguments donnent le nom de fichier et le numéro de
ligne dans lesquels s'est produite l'erreur.
MACRO<T><ErrorLine><T><TotalMacroLines>
Une erreur a eu lieu dans une macro. Ce qui suit cette ligne
est le contenu de la macro déployée. (<TotalMacroLines>
= nombre de lignes). Cela se termine par une ligne contenant
'MACRO<T>COMPLETE'
<ErrorLine> donne la ligne dans la macro a provoqué
une erreur.
MESSAGE<T><Texte>
Le message de l'erreur actuellement décelée.
OUTPUT<T>COMPLETE
Indique la fin de la séquence d'informations sur l'erreur de syntaxe.
Note : Si certain des numéros de ligne ne peuvent pas être
déterminés par le compilateur (par exemple pour les erreurs
qui ne peuvent pas être précisément localisées), le numéro de
ligne retourné sera -1. Donc, vous devez vous attendre à gérer
cetype de valeur.
ERROR<T>ASSEMBLER
ERROR<T>LINKER
ERROR<T>RESOURCE
Une erreur a été détectée durant l'assemblage, le linkage
ou la compilation des ressources de script. Les informations
qui suivent sont alors retournées par le compilateur sous la forme
d'une séquence se terminant par 'OUTPUT<T>COMPLETE'.
FUNCTIONLIST
Demande le listing des fonctions connues par le compilateur.
(Fonctions PB + Fonctions librairie utilisateur)
Paramètre(s) : Aucun
Réponse(s) : La première ligne contient le nombre de fonctions.
Il y succède une fonction par ligne avec le nom de la fonction et
une brève description (si spécifié durant la création de la librairie).
La séquence se termine par 'OUTPUT<T>COMPLETE'.
STRUCTURELIST
Demande le listing des structures connues par le compilateur.
Paramètre(s) : Aucun
Réponse(s) : La première ligne contient le nombre de structures.
Il y succède un nom de structure par ligne.
La séquence se termine par 'OUTPUT<T>COMPLETE'.
INTERFACELIST
Demande le listing des interfaces connues par le compilateur.
Paramètre(s) : Aucun
Réponse(s) : La première ligne contient le nombre d'interfaces.
Il y succède un nom d'interface par ligne.
La séquence se termine par 'OUTPUT<T>COMPLETE'.
STRUCTURE<T><Nom>
Demande le contenu d'une structure connue par le compilateur.
Paramètre(s) : Le nom de la structure
Réponse(s) : La définition de la structure à raison d'un membre
par ligne. La séquence se termine par 'OUTPUT<T>COMPLETE'.
INTERFACE<T><Nom>
Demande le contenu d'une interface connue par le compilateur.
Paramètre(s) : Le nom de l'interface
Réponse(s) : La définition de l'interface à raison d'un membre
par ligne. La séquence se termine par 'OUTPUT<T>COMPLETE'.
HELPDIRECTORY<T><NomFonction>
Demande au compilateur le nom de la librairie d'une fonction
spécifiée.
Paramètre(s) : Le nom de la fonction
Réponse(s) : Soit 'API', soit 'UNKNOWN' soit le nom de
le librairie spécifiée
de PB (à mon nez et à ma barbe...).
Je poste la traduction de ces quelques
instructions.
___________________________________________________________
_______________________
Le compilateur PUREBASIC
______________________
Interface de communication avec éditeurs et scripts
____________________________________________________________
Compatibilité
Nous [la PBTeam] essayons de garder la compatibilité avec les anciennes
versions autant que possible, donc les anciens editeurs/
scripts peuvent encore fonctionner avec les nouvelles
versions de PB.
Les exceptions seront inscrites dans ce document fourni avec
chaque nouvelle version de compilateur.
Les anciennes versions de PB pour Windows (< 4.00)
utilisaient une Interface qui n'est plus valable pour les
versions récentes (> Version 4.00). Donc, si vous utilisiez
cette Interface, il vous faut faire la mise à jour.
Generalités
Quand le compilateur est démarré avec l'option /STANDBY (sous
Windows) ou l'option --standby (sous Linux et Mac), il va
attendre les commandes depuis l'entrée standard et répondre
vers la sortie standard. Cela permet de contrôler le
compilateur depuis un language ou script capable d'accéder
au canal standard du programme.
Sous PB, la librairie 'Process' permet cet échange
d'information.
Les commandes doivent être données sous forme de texte terminé
par un code de retour chariot (code ASCII 13, #CRLF ou #LF).
Il est important de respecter cette syntaxe sinon le compilateur
va mal réagir. La fonction 'WriteProgramStringN()' de la
librairie 'process' assure bien cette manoeuvre.
D'autres language ont cette même fonction comme fflush() en C.
Une commande doit être écrite en majuscule en début de ligne,
suivi d'éventuels arguments séparés par une tabulation.
(Les tabulations sont Notées <T> dans ce document).
Il ne doit pas y avoir d'espace, sauf s'ils appartiennent à un
des arguments d'une commande.
Excepté au démarrage, le compilateur écrira tout dans la sortie
standard en tant que réponse à une commande envoyée. Donc, vous
avez besoin de vérifier l'arrivée d'une réponse uniquement après
l'envoi d'une commande.
Le retour de réponse dépend donc uniquement du fait que l'on
envoie des commandes. Si rien n'est envoyé, la réponse est une
ligne unique de départ.
Dès le démarrage, le compilateur écrit cette ligne:
STARTING<T><VersionNr><VersionString>
<VersionNr> contient le numéro de version du compilateur sous
la forme '4.30'
Cette valeur peut être utilisée pour déterminer quelles commandes
sont supportés par le compilateur.
<VersionString> est la version du compilateur sous la forme
'PureBasic 4.10 (Windows - x86)'.
Ensuite, le compilateur charge ses librairies, et indique la ligne
suivante:
READY
- Le compilateur a fini son chargement initial et est prêt
à fonctionner
ERROR<T><Message>
- Le compilateur ne peut pas fonctionner
correctement pour les raisons données dans le message.
ERROR<T>SUBSYSTEM<T><SubsystemName>
- Le compilateur ne trouve pas le sous-système spécifié
Après le message 'READY', le compilateur attend désormais les
commandes sur le canal d'entrée standard.
Par contre, après un message 'ERROR', le compilateur s'arrête
immédiatement.
Sous-système et mode unicode
Les options de librairie sous-système et d'unicode ne peuvent
être modifiées pendant le fonctionnement du compilateur.
Pour effectuer un tel changement, le compilateur doit être
redémarré. C'est pourquoi ces deux types d'options sont
indisponibles ici. Ces deux types d'options doivent être
spécifiées dans la ligne de commande, au démarrage du
compilateur, au même titre que l'option /STANDBY.
Commandes supportées
(Depuis la version 4.10)
END
Ordonne au compilateur de s'arrêter
Paramètre(s) : Aucun
Réponse(s) : Aucune
SOURCE<T><FichierSource>
Indique au compilateur le nom du fichier source
pour la prochaine comilation
Paramètre(s) : Le nom du fichier source. (Il doit contenir
l'intégralité du chemin d'accès)
Réponse(s) : Aucune
SOURCEALIAS<T><SouceFile Alias>
Indique au compilateur le nom du fichier qui sera retourné dans
la constante #PB_Compiler_File pour le code source principal
à la place du nom de fichier spécifié par la commande SOURCE.
C'est utile pour les éditeurs qui compilent à partir d'un fichier
temporaire, mais qui veulent que le fichier source réel soit
reporté ici.
Paramètre(s) : Le nom du fichier (doit contenir l'intégralité du
chemin d'accès)
Réponse(s) : Aucune
INCLUDEPATH<T><Chemin>
Indique au compilateur quelles instructions de tous les
'FichierDInclusion' seront pris en compte. Cela permet de
mettre le fichier source dans répertoire temporaire en incluant
les fichiers relatifs au chemin d'origine. Si le chemin d'inclusion
n'est pas spécifié, le chemin du fichier source est utilisé par défaut.
Paramètre(s) : Le chemin d'accès. Il doit être complet et terminé
par un caractère '\' ou '/' (selon l'OS)
Réponse(s) : Aucune
RESOURCE<T><File>
(Pour Windows uniquement) Spécifie un script ressource (*.rc) à
inclure dans la compilation.
Paramètre(s) : Le nom de fichier. (doit contenir le chemin complet)
Réponse(s) : Aucune
ICON<T><File>
Spécifie une icône pour l'application
Paramètre(s) : Le nom de fichier. (doit contenir le chemin complet)
Réponse(s) : Aucune
Types de fichier supportés:
Windows : *.ico
MacOSX : *.icns
Linux : Non supporté
TARGET<T><FichierCible>
Spécifie le fichier cible pour la prochaine compilation.
Paramètre(s) : Le nom de fichier. (doit contenir le chemin complet)
Réponse(s) : Aucune
CONSTANT<T><ConstantDefinition>
Définit une constant pour la prochaine compilation.
Paramètre(s) : La ligne définissant intégralement la constante
Réponse(s) : Aucune. Si la définition venait à créer une erreur, cette
erreur n'apparaîtra qu'à la prochaine compilation.
Note : C'est la même règle pour l'option /CONSTANT dans la ligne
de commande. Ce qui signifie que la syntaxe doit être du type
"NAME=Value" sans le caractère '#' et sans espace autour du
signe '='. Cela signifie aussi que les nombres seront interprétés
comme des constantes numériques alors que toute expression
autre qu'un nombre sera considérée comme une constante
chaîne.
LINKER<T><FichierCommandeLieur>
Spécifie les options de la ligne de commande pour le lieur
(Semblable à l'option /LINKER de la ligne de commande)
Paramètre(s) : Un nom de fichier contenant les commandes
pour le lieur (doit contenir le chemin complet)
Réponse(s) : Aucune
COMPILE<T><FlagsList>
Démarre la compilation avec un fichier source, un fichier
cible et les drapeaux d'état préalablement spécifiés.
Paramètre(s) : Liste des drapeaux d'état séparés par une
tabulation.
Drapeaux d'état possibles :
DEBUGGER - Compilateur avec débogueur
INLINEASM - Autorise l'assembleur en ligne
DLL - Crée un DLL
XPSKIN - Active les skins XP (Windows uniquement)
ADMINISTRATOR - Mode administrateur sous Vista (Windows uniquement)
USER - Mode utilisateur (Windows uniquement)
CONSOLE - Crée un exécutable en mode console (Windows uniquement)
ONERROR - Autorise les instructions de la librairie OnError
MMX - Crée un exécutable optimisé MMX
3DNOW - Crée un exécutable optimisé 3DNOW
SSE - Crée un exécutable optimisé SSE
SSE2 - Crée un exécutable optimisé SSE2
DYNAMICCPU - Crée un exécutable compatible à tous les CPUs
THREAD - - Crée un exécutable avec sécurisation des threads
PROGRESS - Indique la progression de la compilation (Cf plus bas)
WARNINGS - Affiche les messages d'avertissement (Ver 4.30 Cf plus bas)
Exemple: 'COMPILE<T>DEBUGGER<T>THREAD' compilera avec le
débogueur et avec la sécurisation des threads
Après que la commande ait été exécutée (avec ou sans succès),
toutes les options (SOURCE, TARGET, ICON, RESOURCE,
INCLUDEPATH, CONSTANT, LINKER) seront effacées.
Elles ont donc besoin d'être à nouveau spécifiées par la suite
pour une future compilation.
Réponse(s) :
Si le drapeau d'état PROGRESS est spécifié, le compilateur
répondra par une ou plusieurs des lignes suivantes :
PROGRESS<T>INCLUDE<T><FileName> - un nouveau fichier est inclu
PROGRESS<T>LINES<T><LinesCount> - renseigne de la progression
toutes les 1000 lignes ainsi qu'à la fin totale de la lecture
PROGRESS<T>ASSEMBLING - indique que l'assemblage est accompli
PROGRESS<T>LINKING - indique que les liens sont accomplis
De nouveaux indicateurs de progression devraient voir le jour à l'avenir, donc
pour assurer la compatibilité future, les lignes de réponse sous la forme
'PROGRESS<T>XXX' et qui ne sont pas comprises doivent être ignorées.
Pour les versions 4.30 et ultérieures, si le drapeau d'état 'WARNINGS' est
spécifié, le compilateur est susceptible d'émettre des messages
d'avertissement. La séquence est comme le modèle qui suit :
WARNING<T><Source NumeroLigne>
Un message d'avertissement est émis pour la ligne donnée
Ce qui suit est un nombre de lignes d'informations optionnelles terminé par
la ligne 'OUTPUT<T>COMPLETE'.
A l'avenir, il pourra y avoir plus de lignes en guise de réponse, donc pour
assurer la compatibilité future, il est recommandé de lire toutes les lignes
jusqu'à ce que la ligne 'OUTPUT<T>COMPLETE' soit atteinte en ignorant
ce qui est non identifiable.
INCLUDEFILE<T><NomFichier><T><NumeroLigne>
L'erreur décelé se situe dans un fichier d'inclusion. Les arguments
indiquent donc le nom de fichier et la ligne mise en cause dans le
fichier d'inclusion.
MESSAGE<T><Texte>
Le message d'avertissement actuel.
OUTPUT<T>COMPLETE
Indique la fin de la séquence d'avertissement.
Quand la compilation est effectuée, la réponse peut être :
SUCCESS
La compilation s'est passé correctement
ERROR<T>SYNTAX<T><Source NumeroLigne>
Une erreur a été détectée durant la compilation du code PB
L'argument <Source NumeroLigne> donne le numéro de ligne
où l'erreur s'est produite.
Ce qui suit est un ensemble d'informations optionnelles se
terminant toujours par le signal 'OUTPUT<T>COMPLETE'
A l'avenir, d'autres types de réponse pourront être ajoutées
donc... pour assurer... la compatibilité, il est... recommandé
de lire toutes les lignes jusqu'à ce que la ligne
'OUTPUT<T>COMPLETE' soit atteinte, en ignorant les lignes
qui ne sont pas identifiables.
INCLUDEFILE<T><NomFichier><T><NumeroLigne>
Une erreur s'est produite dans un fichier d'inclusion. Les
arguments donnent le nom de fichier et le numéro de
ligne dans lesquels s'est produite l'erreur.
MACRO<T><ErrorLine><T><TotalMacroLines>
Une erreur a eu lieu dans une macro. Ce qui suit cette ligne
est le contenu de la macro déployée. (<TotalMacroLines>
= nombre de lignes). Cela se termine par une ligne contenant
'MACRO<T>COMPLETE'
<ErrorLine> donne la ligne dans la macro a provoqué
une erreur.
MESSAGE<T><Texte>
Le message de l'erreur actuellement décelée.
OUTPUT<T>COMPLETE
Indique la fin de la séquence d'informations sur l'erreur de syntaxe.
Note : Si certain des numéros de ligne ne peuvent pas être
déterminés par le compilateur (par exemple pour les erreurs
qui ne peuvent pas être précisément localisées), le numéro de
ligne retourné sera -1. Donc, vous devez vous attendre à gérer
cetype de valeur.
ERROR<T>ASSEMBLER
ERROR<T>LINKER
ERROR<T>RESOURCE
Une erreur a été détectée durant l'assemblage, le linkage
ou la compilation des ressources de script. Les informations
qui suivent sont alors retournées par le compilateur sous la forme
d'une séquence se terminant par 'OUTPUT<T>COMPLETE'.
FUNCTIONLIST
Demande le listing des fonctions connues par le compilateur.
(Fonctions PB + Fonctions librairie utilisateur)
Paramètre(s) : Aucun
Réponse(s) : La première ligne contient le nombre de fonctions.
Il y succède une fonction par ligne avec le nom de la fonction et
une brève description (si spécifié durant la création de la librairie).
La séquence se termine par 'OUTPUT<T>COMPLETE'.
STRUCTURELIST
Demande le listing des structures connues par le compilateur.
Paramètre(s) : Aucun
Réponse(s) : La première ligne contient le nombre de structures.
Il y succède un nom de structure par ligne.
La séquence se termine par 'OUTPUT<T>COMPLETE'.
INTERFACELIST
Demande le listing des interfaces connues par le compilateur.
Paramètre(s) : Aucun
Réponse(s) : La première ligne contient le nombre d'interfaces.
Il y succède un nom d'interface par ligne.
La séquence se termine par 'OUTPUT<T>COMPLETE'.
STRUCTURE<T><Nom>
Demande le contenu d'une structure connue par le compilateur.
Paramètre(s) : Le nom de la structure
Réponse(s) : La définition de la structure à raison d'un membre
par ligne. La séquence se termine par 'OUTPUT<T>COMPLETE'.
INTERFACE<T><Nom>
Demande le contenu d'une interface connue par le compilateur.
Paramètre(s) : Le nom de l'interface
Réponse(s) : La définition de l'interface à raison d'un membre
par ligne. La séquence se termine par 'OUTPUT<T>COMPLETE'.
HELPDIRECTORY<T><NomFonction>
Demande au compilateur le nom de la librairie d'une fonction
spécifiée.
Paramètre(s) : Le nom de la fonction
Réponse(s) : Soit 'API', soit 'UNKNOWN' soit le nom de
le librairie spécifiée