Seite 1 von 1

Makroname mit #PB_Compiler_Module

Verfasst: 09.03.2017 10:03
von PeDre
Ist es möglich mit einem Makro, ein Makro aufzurufen, das den aktuellen Modulnamen als Bestandteil des Namens verwendet.

Der Beispielcode ergibt einen Syntaxfehler, und das Ergebnis ist: DebugModule#PB_Compiler_Module

Peter

Code: Alles auswählen

DeclareModule DebugMacros
	Macro DebugModule(CurrentModule)
		DebugModule#CurrentModule ; #PB_Compiler_Module wird nicht aufgelöst.
	EndMacro
	
	Macro DebugModuleTool
		#DebugOut = #True
	EndMacro
	
	Macro DebugModuleCommon
		#DebugOut = #False
	EndMacro
EndDeclareModule
Module DebugMacros
EndModule


DeclareModule Tool
EndDeclareModule
Module Tool
	UseModule DebugMacros
	DebugModule(#PB_Compiler_Module) ; Macro
	;DebugModuleTool
	Debug #DebugOut
EndModule

DeclareModule Common
EndDeclareModule
Module Common
	UseModule DebugMacros
	DebugModule(#PB_Compiler_Module) ; Macro
	;DebugModuleCommon
	Debug #DebugOut
EndModule

Re: Makroname mit #PB_Compiler_Module

Verfasst: 09.03.2017 10:58
von Bisonte
Das Macro "DebugModule" wird aufgerufen, bevor es erstellt ist.
Aus "DebugModule#CurrentModule" mache "Debug#CurrentModule"

Re: Makroname mit #PB_Compiler_Module

Verfasst: 09.03.2017 12:09
von PeDre
Danke, aber dann werden die Modulnamen nur im Debugfenster ausgegeben.
Es sollte aber das jeweilige Makro mit dem Namen 'DebugModule_#PB_Compiler_Module_' aufgerufen werden.

Ich habe den Code oben geändert, damit sich der Modulname von dem Makronamen unterscheidet.
Vermutlich kann die Compiler-Konstante so nicht aufgelöst werden.

Peter

Re: Makroname mit #PB_Compiler_Module

Verfasst: 09.03.2017 13:01
von #NULL
du müsstest den module namen direkt angeben.

Code: Alles auswählen

...
  Macro DebugModule(CurrentModule)
    DebugModule#CurrentModule
  EndMacro
  ...
Module Tool
  UseModule DebugMacros
  DebugModule(Tool)
  ...
damit kannst du dann bestimmt auch ein macro names DebugModuleTool anlegen lassen, falls das der plan war.