WVL_SYS_Range(name, int lowerbound, int upperbound)
| Function | |||
| A name list, the resulting list is $1$2, $1($2+1), ...$1$3 | |||
| Example | |||
| WVL_SYS_Range(`br', 1, 5) | |||
| => br1,br2,br3,br4,br5 | |||
WVL_SYS_Echo(name)
| Function | |||
| Display the value of the argument | |||
| Sometimes, when a marco expansion is within another macro expansion, it won't be expanded automatically. To solve the problem, we define this macro to ask the inner macro to expand first. | |||
| Example | |||
| Assumed that "WVL_Component_ID = S0" | |||
| WVL_SYS_Host(`H0', `skylark.cs.colorado.edu', `ywang', `', `/bin/sh', `/scratch/yanyan/testroot', `FreeBSD') | |||
| WVL_SYS_Component(`S0', `SienaServer') | |||
| WVL_SYS_Actor(`D1', `D1', `DrProgram1', `S0') | |||
| `WVL_Component_'WVL_SYS_Echo(`WVL_Component_'WVL_Component_ID`_Parent')`_type' | |||
| => skylark.cs.colorado.edu | |||
WVL_SYS_Head(name [, name])
| Function | |||
| Returns the "head" of its argument list | |||
| Example | |||
| WVL_SYS_Head(`S0', `S1', `S2') | |||
| => S0 | |||
WVL_SYS_Tail(name [, name])
| Function | |||
| Returns the "rest" of its argument list | |||
| Example | |||
| WVL_SYS_Tail(`S0', `S1', `S2') | |||
| => S1,S2 | |||
WVL_SYS_Add(name, expansion)
| Function | |||
| Defines or redefines $1 to be its previous contents with $2 appended | |||
| Example | |||
| define(`Group1', `S1,S2') | |||
| define(`Group2', `S3,S4') | |||
| WVL_SYS_Add(`Group2', Group1) | |||
| Group2 | |||
| => S3,S4,S1,S2 | |||
WVL_SYS_Contains(name, expansion [, expansion])
| Function | |||
| Checks if $1 is contained by the list represented by the rest of the arguments | |||
| Example | |||
| define(`Group1', `S1,S2') | |||
| define(`Group2', `S3,S4') | |||
| WVL_SYS_Contains(`S3', Group1) | |||
| => false | |||
| WVL_SYS_Contains(`S3', Group1, Group2) | |||
| => true | |||
WVL_SYS_Insert(expansion, name)
| Function | |||
| Adds $2 to $1 if it doesn't already exist there | |||
| Example | |||
| define(`Group1', `S1,S2') | |||
| WVL_SYS_Insert(`Group1', `S1') | |||
| Group1 | |||
| => S1,S2 | |||
| WVL_SYS_Insert(`Group1', `S3') | |||
| Group1 | |||
| => S1,S2,S3 | |||
WVL_SYS_Callforeach(function, name [, name])
| Function | |||
| Applies $1 to $2 and then processes the rest one by one, $1 can only accept one argument | |||
| Example | |||
| define(`serverdef', `WVL_SYS_Component($1, `SienaServer')') | |||
| WVL_SYS_Callforeach(`serverdef', S0, S1, S2) | |||
| => WVL_SYS_Component(`S0', `SienaServer')dnl | |||
| WVL_SYS_Component(`S1', `SienaServer')dnl | |||
| WVL_SYS_Component(`S2', `SienaServer')dnl | |||
WVL_SYS_Foreach(name, function, list)
| Function | |||
| Iterates over $3 defining $1 to the current value in $3 and executing $2 | |||
| Example | |||
| WVL_SYS_Foreach(`i', `WVL_SYS_Component(i, `SienaServer')', `S0, S1, S2') | |||
| => WVL_SYS_Component(`S0', `SienaServer')dnl | |||
| WVL_SYS_Component(`S1', `SienaServer')dnl | |||
| WVL_SYS_Component(`S2', `SienaServer')dnl | |||
WVL_SYS_Subst_Commas(string, name [, name])
| Function | |||
| Iterates over arguments replacing commas with $1 | |||
| Example | |||
| WVL_SYS_Subst_Commas(`;', S0, S1, S2) | |||
| => S0;S1;S2; | |||
WVL_SYS_Strip_Commas(name [, name])
| Function | |||
| Iterates over arguments expanding without commas | |||
| equals to WVL_SYS_Subst_Commas(` ', name [, name]) | |||
| Example | |||
| WVL_SYS_Strip_Commas(S0, S1, S2) | |||
| => S0 S1 S2 | |||