If you don't mind running the macro to find out you can use %put _local_;
Which will only display the local parameters even if no value is assigned.
%macro dummy(parm1= , Parm2=, otherparm=);
%put _local_;
%mend;
%dummy()
The log will show the name of the macro (helpful those folks at SAS) and the name of the variable plus the value if any.
WARNING: This will only show the parameters defined as of the line of code the %put executes. So any macro variable created later in the macro will not be reported. Though for your case of not knowing the possible parameters having it as a first line in the macro may help.
You will still have an issue about the order of variables to use in a call though as the order the local variables are displayed in the log will be alphabetical, not declared order.
... View more