Content deleted Content added
RjwilmsiBot (talk | contribs) m fixing page range dashes using AWB (9535) |
m Reverted edits by RjwilmsiBot (talk) to last version by Peter Flass |
||
Line 55:
===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'', outside of any preprocessor procedure, or from 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.
==Preprocessor builtins==
These are the builtins for IBM's ''PL/I for MVS and VM'' compiler.<ref name=PLI1.1>{{cite book|last=IBM Corporation|title=IBM PL/I for MVS & VM Language Reference|year=1995}}</ref>{{rp|pp.
* '''COMPILETIME''' — returns the date and time of compilation as a character string such as "15 SEP 12 15:30:00" for September 15, 2012 3:30PM (local time).
* '''COUNTER''' — returns a character string containing a number that is "00001" for the first call to COUNTER and increases by one for each subsequent call.
Line 107:
==Evolution==
A '''1964''' report on "NPL"<ref>{{cite book|last=IBM Corporation|title=NPL Technical Report|year=1964|url=http://bitsavers.informatik.uni-stuttgart.de/pdf/ibm/360/pli/320-0908_NPL_Technical_Report_Dec64.pdf}}</ref>{{rp|pp.
* <code>%DECLARE</code> – both fixed-length and varying character strings were defined.
* ''%assignment''
Line 116:
"NPL" as defined in this manual was never implemented.
In '''1965''' an update to IBM's ''PL/I Language specification'' defined an even less ambitious preprocessor language<ref>{{cite book|last=IBM Corporation|title=IBM Operating System/360 PL/I: Language Specifications (C28-6571-1)|year=1965|url=http://bitsavers.informatik.uni-stuttgart.de/pdf/ibm/360/pli/C28-6571-1_PL_I_Language_Specifications_Jul65.pdf}}</ref>{{rp|pp.
* <code>%DECLARE</code>
* ''%assignment''
Line 123:
* <code>%GOTO</code>
This language specification was again never implemented, however a '''1966''' revision of this manual restored preprocessor procedures with the now-current <code>%PROCEDURE ...%END</code> syntax and brought the specification close to what was actually included in PL/I(F)<ref>{{cite book|last=IBM Corporation|title=IBM Operating System/360 PL/I: Language Specifications (C28-6571-3)|year=1966|url=http://bitsavers.informatik.uni-stuttgart.de/pdf/ibm/360/pli/C28-6571-3_PL_I_Language_Specifications_Jul66.pdf}}</ref>{{rp|pp.
* <code>%ACTIVATE</code>
* <code>%DEACTIVATE</code>
|