Einrückungen bei Macro-Code wie bei Base-Code

Macro-Code ist nicht als eigenständig zu sehen, sondern als Sprach-Erweiterung von SAS-Base.
Das heißt, dass Makro-if-then-else genauso eingerückt werden wie Base-if-then-else:
Makro-if-then-else stehen immer relativ zur Vorgänger-Zeile 2 (oder 3) Zeichen eingerückt.

Das gleiche gilt für Macro-do-end-Schleifen:
Macro-do-end-Schleifen stehen immer relativ zur Vorgänger-Zeile 2 (oder 3) Zeichen eingerückt.

Wenn die Makro-Definition global ist, steht sie aussen. Beispiel

%macro PrintIt (data=&syslast, where=);
  proc print data=&
data.;
    
%if "&where." NE "" %then %do;    /* NE statt EQ oder ..., desh. GROSS-geschr. */
      
where &where.;
    
%end;
  run;
%mend PrintIt;

Wenn die Makro-Definition lokal ist, und vieleicht nur aus Syntax-Gründen nötig ist, steht sie immer relativ zur Vorgänger-Zeile 2 (oder 3) Zeichen eingerückt. Beispiel

proc print data=&syslast.;
  
var auftnum kundnum
      
%macro m0815;
        
%if "&WertVar." NE "" %then %do;  /* Macro-if-then-else im offenen Code verboten! */
          
&WertVar.                       /* Variable ausgeben, wenn vorhanden */
        
%end;
      
%mend;
      %m0815;                             
/* Ein-Zweck-Macro, weil Macro-if-then-else im offenen Code verboten! */
  
;
run;

Die Diskussion die sich unter
SAS-Programmierrichtlinien » Codelayout » Platzieren von Anweisungen » DO-Blöcke verwenden (AndreasMangold, 8 März, 2006 - 21:44)
entwickelt hat, speziell

  • "Einrücken bei den Beispielen" (Eingetragen von HansKneilmann, 24 März, 2006 - 12:03)
  • "Einrückungen" (Eingetragen von AndreasMangold. | 25 März, 2006 - 00:21)
  • "Zwei Welten" (Eingetragen von heitzig-j, 30 März, 2006 - 09:54)

gehört "eigentlich" hier rein, bloß wie ....?