__FB_ARG_LISTEXPAND__


Intrinsic define (macro) performed by the compiler.

Syntax:
__FB_ARG_LISTEXPAND__( macroname, macroargcount, args... )

Parameters:
macroname
name of the macro used for extension calls
macroargcount
number of parameters for the 'macroname' macro
expand the parameter list 'args...' according to the 'macroargcount' value:
- 'macroargcount > 0' : pass 'macroargcount' parameters each time
- 'macroargcount = 0' : pass all parameters
- 'macroargcount < 0' : for each parameter passed, the previous 'macroargcount' parameters are automatically removed on the next pass
args...
argument list

Description:
Expands to one or more 'macroname( .... )' depending on the value of macroargcount and number of arguments in the args... list.

Returns empty string on invalid index, rather than compile error.

Examples:
#macro m( arg... )
    #print "   "##arg
#endmacro

#print "macroargcount>0 (=1):"
__FB_ARG_LISTEXPAND__( m, 1, Hello1, Hello2, Hello3, Hello4)
#print " "
#print "macroargcount=0 (=0):"
__FB_ARG_LISTEXPAND__( m, 0, Hello1, Hello2, Hello3, Hello4)
#print " "
#print "macroargcount<0 (=-1):"
__FB_ARG_LISTEXPAND__( m, -1, Hello1, Hello2, Hello3, Hello4)


/' Compiler output:
macroargcount>0 (=1):
   Hello1
   Hello2
   Hello3
   Hello4
 
macroargcount=0 (=0):
   Hello1, Hello2, Hello3, Hello4
 
macroargcount<0 (=-1):
   Hello1, Hello2, Hello3, Hello4
   Hello2, Hello3, Hello4
   Hello3, Hello4
   Hello4
'/

Version:
Differences from QB:
See also:
Back to Intrinsic Defines
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki



sf.net phatcode