Content deleted Content added
Peter Flass (talk | contribs) example |
Peter Flass (talk | contribs) →Preprocessor statements: procedure information |
||
Line 53:
*%null is a preprocessor statement consisting only of an optional statement label and a ';'. It does nothing, but serves a a placeholder where a required statement is not needed.
*'''%REPLACE''' allows immediate replacement of a ''name'' by a character or fixed expression. ''name'' does not have to be a declared preprocessor identifier.
====Preprocessor procedures====
A preprocessor procedure is a [[subroutine]] executed by the preprocessor. The procedure is delimited by <code>%PROCEDURE</code> and <code>%END</code> statements and can contain only preprocessor statements, without the leading '%'. It is invoked as a function reference from open code or another preprocessor procedure and returns a CHARACTER or FIXED value. When the procedure is invoked from open code the arguments are passed ''by name'', that is they are interpreted as character strings delimited by commas or a right parenthesis, all leading, trailing, or imbedded blanks are significant and considered part of the argument.<ref name=ibm3lr40>{{cite book|last=IBM Corporation|title=Enterprise PL/I for z/OS PL/I for AIX WebSphere Developer for zSeries PL/I for Windows Language Reference|year=2005|url=http://pic.dhe.ibm.com/infocenter/pdthelp/v1r1/topic/com.ibm.entpli.doc_3.5/ibm3lr40.pdf}}</ref>{{rp|pp.508-509}}
==Preprocessor builtins==
|