function declaration
DECLARE FUNCTION XuiDialog2B (grid, message, v0, v1, v2, v3, r0, ANY)

Line 0 is the function declaration line from the PROLOG.

It is typical of all grid function declarations, since all grid functions must take the same eight arguments. The last argument is declared as ANY type because, depending on message , it must contain:

  XLONG variable
  STRING variable
  XLONG array
  STRING array

It is very important to pass the correct type in the final argument.  Failure to do so can crash your program and sometimes even the program development environment itself.   It's easy to avoid such mistakes, however, since the argument is always XLONG unless the message explicitly calls for something else, as do the following:

  STRING - XuiGetTextString, XuiGetHelpString
  STRING array - XuiGetTextArray, XuiSetHelpStrings
  XLONG array - XuiGetKidsArray

function definition
FUNCTION XuiDialog2B (grid, message, v0, v1, v2, v3, r0, (r1, r1$, r1$[]))

Line 7 is the function definition line, the line that begins the function. It shows the same eight arguments, except the ANY argument expands to r1,r1$,r1$[] to carry the different type arguments.

These arguments are aliased, meaning assigned the same address. It's crucially important that your program refer only to the one appropriate argument - as determined by the message argument.