TAL Reference Manual
LITERALs and DEFINEs
TAL Reference Manual—526371-001
5-9
Examples of Passing DEFINE Parameters
3. This example fills an array with zeros:
DEFINE zero_array (array, length) =
BEGIN
array[0] := 0;
array[1] ':=' array FOR length - 1;
END #;
LITERAL len = 50;
INT buffer[0:len - 1];
zero_array (buffer, len); !Fill buffer with zeros
4. This example displays a message, checks the condition code, and assigns an error
if one occurs:
INT error;
INT file;
INT .buffer[0:50];
INT count_written;
INT i;
DEFINE emit (filenum, text, bytes, count, err) =
BEGIN
CALL WRITE (filenum, text, bytes, count);
IF < THEN
BEGIN
CALL FILEINFO (filenum, err);
!Process errors if any
END;
END #;
!Lots of code.
IF i = 1 THEN
emit (file, buffer, 80, count_written, error);