Page 1 sur 2

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

Publié : dim. 06/juil./2014 15:13
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

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

Publié : dim. 06/juil./2014 15:18
par SPH
Toiiii, tu t'entraines en vue du purepunch 8)

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

Publié : dim. 06/juil./2014 15:42
par graph100
Mais noon :lol: absolument pas :mrgreen:

En tout cas j'aimerais que le système de macro fonctionne un peu plus logiquement !

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

Publié : dim. 06/juil./2014 18:29
par Fred
C'est tout simplement pas supporté, tu ne peux pas creer une macro de la commande "Macro" ou "EndMacro".

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

Publié : dim. 06/juil./2014 18:36
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

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

Publié : dim. 06/juil./2014 18:58
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.

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

Publié : dim. 06/juil./2014 19:16
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:

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

Publié : dim. 06/juil./2014 19:17
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:

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

Publié : dim. 06/juil./2014 19:21
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:

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

Publié : dim. 06/juil./2014 19:22
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

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

Publié : dim. 06/juil./2014 19:24
par Backup
excuse ma lourdeur , mais ça sert a quoi une Macro Vide 8O

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

Publié : dim. 06/juil./2014 19:25
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.

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

Publié : dim. 06/juil./2014 19:28
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.

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

Publié : dim. 06/juil./2014 19:31
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

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

Publié : dim. 06/juil./2014 19:33
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 ;)