IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo
Sommaire > Compilateur
        Comment communiquer avec le compilateur ?
        Comment vérifier si le compilateur est prêt ?
        Comment interroger le compilateur ?
        Comment récupérer la réponse du compilateur ?

rechercher
precedent    sommaire    suivant    telechargermiroir


Comment communiquer avec le compilateur ?
auteur : Comtois
Le compilateur est très docile, si on lui demande gentiment il est capable de répondre à nos questions. On peut par exemple lui demander la liste des champs dans une structure donnée, ou lui demander la liste des fonctions qu'il connait, on obtient ainsi non seulement la liste des fonctions PureBasic mais aussi la liste des fonctions des bibliothèques tierces installées dans le répertoire PureBasic. Mais avant d'interroger le compilateur il faut le démarrer. Pour cela on utilise tout simplement la commande RunProgram() avec les options suivantes :

  • #PB_Program_Hide : Lance le programme en mode invisible.
  • #PB_Program_Open : Ouvre des canaux de communication entre le programme lancé et le programme PureBasic.
  • #PB_Program_Read : Lecture possible sur la sortie standard (stdout).
  • #PB_Program_Write : Ecriture possible sur l'entrée standard (stdin).

Compilateur = RunProgram(#PB_Compiler_Home+"Compilers\Pbcompiler.exe", "/STANDBY", "", #PB_Program_Open|#PB_Program_Read|#PB_Program_Write|#PB_Program_Hide)
If Compilateur = 0
  MessageRequester("Pas de bol", "Le compilateur ne démarre pas")
  End
EndIf
; Version du compilateur
;
Reponse$ = ReadProgramString(Compilateur)
/STANDBY (Windows) ou --standby (Linux/Mac) : Le compilateur attend une commande sur l'entrée standard (stdin) et répond sur la sortie standard (stdout)


Comment vérifier si le compilateur est prêt ?
auteur : Comtois
Une fois que vous avez démarré le compilateur, vous devez vérifier qu'il est prêt à discuter avec vous.

; Vérifie que le compilateur soit prêt
;
Reponse$ = ReadProgramString(Compilateur)

If StringField(Reponse$, 1, Chr(9)) = "ERROR"
  MessageRequester("", "Erreur: " + StringField(Reponse$, 2, Chr(9)))
  CloseProgram(Compiler)
  End
EndIf 

Comment interroger le compilateur ?
auteur : Comtois
Ok, le compilateur est démarré, il est prêt, alors posons lui une question. Certaines questions ont un paramètre, d'autres non.

Exemple de requête sans paramètre, en réponse Le compilateur renvoie la liste de toutes les structures :

; interroge le compilateur
;
Demande$="STRUCTURELIST"
Parametre$=""
WriteProgramStringN(Compilateur, Demande$+Chr(9)+Parametre$)
Autre exemple de requête avec un paramètre, le compilateur renvoie la liste des champs de la structure indiquée en paramètre :

; interroge le compilateur
;
Demande$="STRUCTURE"
Parametre$="point"
WriteProgramStringN(Compilateur, Demande$+Chr(9)+Parametre$)
Pour connaître la liste des requêtes possibles consultez le fichier CompilerInterface.txt qui se trouve dans le répertoire sdk de PureBasic.


Comment récupérer la réponse du compilateur ?
auteur : Comtois
Il suffit de créer une boucle qui récupère les réponses jusqu'à l'information 'OUTPUT [TAB] COMPLETE'

; Récupère la réponse du compilateur
Repeat
  Reponse$ = ReadProgramString(Compilateur)
  If Reponse$ = "OUTPUT"+Chr(9)+"COMPLETE"
    Break
  EndIf
  Texte$ + Reponse$ + Chr(13)
ForEver
Ensuite il faut terminer l'échange en envoyant la requête 'END'

;Termine l'échange avec le compilateur
WriteProgramStringN(Compilateur, "END")
CloseProgram(Compilateur)
Et on peut enfin afficher le résultat

;Affiche le résultat
MessageRequester("", Texte$)

rechercher
precedent    sommaire    suivant    telechargermiroir

Consultez les autres F.A.Q's


Valid XHTML 1.1!Valid CSS!

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2008 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.