Macro -> problèmes avec l'imterpréteur de PB

Sujets variés concernant le développement en PureBasic
Avatar de l’utilisateur
graph100
Messages : 1318
Inscription : sam. 21/mai/2005 17:50

Macro -> problèmes avec l'imterpréteur de PB

Message par graph100 »

Les Macro sont très mal traitées lorsqu'il commence à en avoir plusieurs sur la même ligne.

Le compilateur se met à générer des erreurs incohérentes

Exemple :

Le code suivant compile

Code : Tout sélectionner

Macro M:Macro:EndMacro:M E:End:End#M
M El:ElapsedMilliseconds():E#M
M St:Structure:E#M
	
St ma_structure:plop.d:EndStructure

Debug "test"
Et ce n'est qu'un seul soucis parmi plein d'autre

alors que celui-ci ne compile pas

Code : Tout sélectionner

Macro M:Macro:EndMacro:M E:End:End#M:M El:ElapsedMilliseconds():E#M
M St:Structure:E#M
	
St ma_structure:plop.d:EndStructure

Debug "test"
je n'ai fait que mettre la 3ème macro sur la même ligne
_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel ;))
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Re: Macro -> problèmes avec l'imterpréteur de PB

Message par SPH »

Toiiii, tu t'entraines en vue du purepunch 8)

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
graph100
Messages : 1318
Inscription : sam. 21/mai/2005 17:50

Re: Macro -> problèmes avec l'imterpréteur de PB

Message par graph100 »

Mais noon :lol: absolument pas :mrgreen:

En tout cas j'aimerais que le système de macro fonctionne un peu plus logiquement !
_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel ;))
Fred
Site Admin
Messages : 2808
Inscription : mer. 21/janv./2004 11:03

Re: Macro -> problèmes avec l'imterpréteur de PB

Message par Fred »

C'est tout simplement pas supporté, tu ne peux pas creer une macro de la commande "Macro" ou "EndMacro".
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Macro -> problèmes avec l'imterpréteur de PB

Message par Backup »

Fred a écrit :C'est tout simplement pas supporté, tu ne peux pas creer une macro de la commande "Macro" ou "EndMacro".

si! si !

c'est seulement de la commande "Endmacro" que tu peux pas

mais macro ME:Macro:Endmacro Marche tres bien (regarde mon Punch )

ceci fonctionne

Code : Tout sélectionner

macro Ma:macro:EndMacro
Ma EN:enumeration:endmacro
c'est d'ailleurs dommage qu'on ne puisse faire

Code : Tout sélectionner

macro Ma:macro:EndMacro
Macro ED:endmacro:endmacro  <<<<< ceci pas possible Dommage

Ma EN:enumeration:ED  <<< du coup cela ne marche pas

Ma EN:enumeration:endmacro ; <<< mais ceci fonctionne
je me demande pourquoi c'est possible avec "Macro" et pas avec "EndMacro"
arf ... c'est peut etre parce que ton analyseur Syntaxique planterai sur "EndMacro" , car dans "EndMacro" , il y a "Macro"

ben la solution est simple , tu commences par analyser les "EndMacro" , puis les "Macro" .....
pour un analyseur de Syntaxe , on commence toujours par analyser les mots les plus longs ... ça evite la redondance
Fred
Site Admin
Messages : 2808
Inscription : mer. 21/janv./2004 11:03

Re: Macro -> problèmes avec l'imterpréteur de PB

Message par Fred »

Merci pour la leçon de parsing ;), mais c'est pas ca. Si tu ecris:

Code : Tout sélectionner

Macro ED:endmacro:endmacro
la macro se termine sur le premier EndMacro, c'est logique et c'est pas possible de faire autrement. Je répète que ça n'est pas officiellement supporté. Si ça marche dans certain cas, tant mieux, mais si ça ne marche pas, ce n'est pas un bug.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Macro -> problèmes avec l'imterpréteur de PB

Message par Backup »

Fred a écrit :

Code : Tout sélectionner

Macro ED:endmacro:endmacro
la macro se termine sur le premier EndMacro, c'est logique et c'est pas possible de faire autrement. Je répète que ça n'est pas officiellement supporté. Si ça marche dans certain cas, tant mieux, mais si ça ne marche pas, ce n'est pas un bug.
je ne dis pas qu'il s'agit d'un bug ..
tu dis que la Macro se termine sur le premier EndMacro ....

hum , ça devrai pas ... puisque une Macro complète demande

une Intro "Macro"
un Label "ED"
le mot que ça remplace donc ici "endmacro"
et la Fin de macro "Endmacro"




si Purebasic considère que la fin de Macro est atteinte alors qu'il n'y a pas de label .... c'est peut etre là le probleme non ?

je ne cherche pas a te donner de leçon , mais ne considere pas que tu détiens la science infuse hein ... :mrgreen:
Dernière modification par Backup le dim. 06/juil./2014 19:18, modifié 1 fois.
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: Macro -> problèmes avec l'imterpréteur de PB

Message par G-Rom »

Dobro a écrit : ben la solution est simple , tu commences par analyser les "EndMacro" , puis les "Macro" .....
pour un analyseur de Syntaxe , on commence toujours par analyser les mots les plus longs ... ça evite la redondance
Fred a écrit :Merci pour la leçon de parsing ;)
C'est un chaud bouillant le père Dobro, il à fait le puregologolo , donne lui les sources du compilo , il va t'arrangé cela :mrgreen:
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Macro -> problèmes avec l'imterpréteur de PB

Message par Backup »

non, je cherche a comprendre

entre parenthese , mon experience du Parsing de la langue Française me viens de Nono mon synthe vocale
qui est capable de dire une Ohrase que tu lui entre ... c'est deja pas mal si tu arrive a en faire autant ;) Mr G-Rom :mrgreen:
Dernière modification par Backup le dim. 06/juil./2014 19:23, modifié 1 fois.
Fred
Site Admin
Messages : 2808
Inscription : mer. 21/janv./2004 11:03

Re: Macro -> problèmes avec l'imterpréteur de PB

Message par Fred »

Une macro ne contient pas forcement de terme à remplacer: une macro 'vide' est parfaitement valide.

Code : Tout sélectionner

Macro MacroVide
EndMacro
MacroVide
ou:

Code : Tout sélectionner

Macro MacroVide:EndMacro
MacroVide
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Macro -> problèmes avec l'imterpréteur de PB

Message par Backup »

excuse ma lourdeur , mais ça sert a quoi une Macro Vide 8O
Fred
Site Admin
Messages : 2808
Inscription : mer. 21/janv./2004 11:03

Re: Macro -> problèmes avec l'imterpréteur de PB

Message par Fred »

Dobro a écrit :
Fred a écrit :je ne cherche pas a te donner de leçon , mais ne considere pas que tu détiens la science infuse hein ... :mrgreen:
Ca c'est fort, tu dis que c'est simple de fixer un truc alors que tu ne sais absolument pas comment marche le compilateur PureBasic et c'est moi qui ait la science infuse ? La prochaine fois je m'abstiendrai de tout commentaire, ce sera plus simple et je perdrai moins de temps.
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: Macro -> problèmes avec l'imterpréteur de PB

Message par G-Rom »

Dobro a écrit :excuse ma lourdeur , mais ça sert a quoi une Macro Vide 8O
Je m'en sers pour importé des fonctions , je te posterais un exemple quand je serais sur mon PC.
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: Macro -> problèmes avec l'imterpréteur de PB

Message par G-Rom »

Fred a écrit :
Dobro a écrit :
Fred a écrit :je ne cherche pas a te donner de leçon , mais ne considere pas que tu détiens la science infuse hein ... :mrgreen:
Ca c'est fort, tu dis que c'est simple de fixer un truc alors que tu ne sais absolument pas comment marche le compilateur PureBasic et c'est moi qui ait la science infuse ? La prochaine fois je m'abstiendrai de tout commentaire, ce sera plus simple et je perdrai moins de temps.

Merde, il n'a pas pris ses médoc... détend toi, il ne dit pas que tu as la science infuse , au contraire... :mrgreen:
Les gars du 44 ne rigole pas , ne le chauffe pas trop , surtout quand on a des épaules de couleuvre :mrgreen:
https://www.youtube.com/watch?v=vFaivuht3qs
Fred
Site Admin
Messages : 2808
Inscription : mer. 21/janv./2004 11:03

Re: Macro -> problèmes avec l'imterpréteur de PB

Message par Fred »

Code : Tout sélectionner

CompilerIf #PB_Compiler_Debugger
  Macro MonDebug(a)
    MessageRequester("Mon debug", "Line "+#PB_Compiler_Line+": "+a)
  EndMacro
CompilerElse
  Macro MonDebug(a)
  EndMacro
CompilerEndIf  

MonDebug("Example")
@g-rom: si si, j'ai bien lu et je comprends le francais, merci ;)
Répondre