Trailing-Edge
-
PDP-10 Archives
-
tops10_integ_tools_v4_10jan-86
-
70,6067/com20a/pli.edt
There are 3 other files named pli.edt in the archive. Click here to see a list.
SET truncate
SET search unbounded
set mode change
define key control R as "S/?'Old/New: '/."
define key control G as "SN."
define key 3 as 'ext set scr 80.'
define key gold 3 as 'ext set scr 132.'
! PLI.EDT - PL/I language synthesizer
!
! ************ TEST CONSTRUCTS ************
!
! GOLD A means insert "select/case action label"
def key GOLD A as 'tc i[/*%(action label)%*/]: ^M ti tab i/*%(action expr)%*/; ^M ^M td tab i/*%(action line)%*/ -"[".'
!
! GOLD C means insert "CASE" template
def key GOLD C as 'tc iCASE /*%(case-index)%*/ FROM /*%(ctce)%*/ TO /*%(ctce)%*/ OF ^M tab iSET ^M ^M tab i[/*%(action label)%*/]: ^M ti tab i/*%(action expr)%*/; ^M ^M td tab i/*%(case line)%*/ ^M tab iTES; -"CASE %" +"%".'
!
! GOLD I is used to insert "IF...THEN...ELSE" construct
def key GOLD I as 'tc iIF /*%(if-expr)%*/ ^M tab iTHEN ^M ti tab i/*%(then-clause)%*/ ^M td tab iELSE ^M ti tab i/*%(else-clause)%*/ td -"IF /" +"/".'
!
! GOLD S is used to insert a "SELECTONE" template
def key GOLD S as 'tc iSELECTONE /*%(selector)%*/ OF ^M tab iSET ^M ^M tab i[/*%(action label)%*/]: ^M ti tab i/*%(action expr)%*/; ^M ^M td tab i/*%(select line)%*/ ^M tab iTES; ^M -"SELECTONE %" +"%".'
!
! GOLD T is used to insert an "IF...THEN" template
def key GOLD T as 'tc iIF /*%(if-expr)%*/ ^M tab iTHEN ^M ti tab i/*%(then-clause)%*/ td tab -"IF /" +"/".'
!
! ************ Loop Control ************
!
! GOLD E is used to insert a "DO...WHILE" template
def key gold E as 'tc iDO WHILE( /*%(while-test)%*/ ); ^M ti tab i/*%(loop-body)%*/ ^M td tab iEND; -"DO" +"/".'
!
! GOLD L is used to insert a "DO...UNTIL" template
def key gold L as 'tc iDO UNTIL( /*%(until-test)%*/ ); ^M ti tab i/*%(loop-body)%*/ ^M td tab iEND; -"DO" +"/".'
!
! GOLD N is used to insert an "counted DO loop" template
def key GOLD N as 'tc iDO /*%(loopvar)%*/ = /*%(first)%*/ TO /*%(last)%*/ BY /*%(increment)%*/; ^M ti tab i/*%(loop body)%*/ ^M td tab iEND; -"DO" +"/".'
!
! GOLD U is used to insert a "counted DO...UNTIL" template
def key GOLD U as 'tc iDO /*%(loopvar)%*/ = /*%(first)%*/ TO /*%(last)%*/ BY /*%(increment)%*/ UNTIL( /*%(until-test)%*/ ); ^M ti tab i/*%(loop body)%*/ ^M td tab iEND; -"DO" +"/".'
!
! GOLD W is used to insert a "counted DO...WHILE" template
def key GOLD W as 'tc iDO /*%(loopvar)%*/ = /*%(first)%*/ TO /*%(last)%*/ BY /*%(increment)%*/ WHILE( /*%(while-test)%*/ ); ^M ti tab i/*%(loop body)%*/ ^M td tab iEND; -"DO" +"/".'
!
! ************ Block Templates ************
!
! GOLD B means insert "BEGIN...END" block
def key GOLD B as 'tc iBEGIN; ^M tab i/*%(block-body)%*/ ^M tab iEND; -"BEGIN" +"/".'
!
! GOLD D means insert "DO...END" block
def key GOLD D as 'tc iDO; ^M tab i/*%(block-body)%*/ ^M tab iEND; -"DO" +"/".'
!
!
! Multi-language Functions (tailored for PL/I)
!
!--
!+
! Major Template Function
!-
! GOLD = -- insert a template
DEFINE KEY GOLD %= AS "(+c-c^M-c)i ^M ext inc EDT$PLI_TEMPLATE:?'Major template: '.PLI ; c ; d-c -' ' dl +'%(/*'."
!+
! Syntactic Marker Functions
!-
! GOLD / is used to locate and delete Syntactic Marker
def key GOLD / as "(KS +'/*%(' +c) d+')%*/' d-c d+4c."
!
! GOLD . is used to locate Syntactic Marker
def key GOLD . as "'/*%('."
!
! GOLD > is used to insert Syntactic Marker
def key GOLD > as "(i/*%( )%*/ -5c)."
!
!+
! Special RETURN Functions
!-
! GOLD ! -- insert a comment template
DEFINEtKEYiGOLD+%!^ASt"tci-' ^M tab i---*/ ^M -'!' cut+el=beginline cut+el=endcomment paste=beginline d-c."
!
! GOLD ? -- inquire what to put at the start of the line
DEFINE KEY GOLD ? AS "i ?'New start of line sequence: ' -2' ' d+3c cut+' '=beginline d+3c."
!
! GOLD <space> -- restore the normal RETURN function
DEFINE KEY GOLD % AS "paste=endcomment i cut-c=beginline +el ext clear endcomment."
!
! CONTROL M -- autoindent each line
DEFINE KEY CONTROL M AS '^M tab paste=beginline d-c.'
!
! BEGINLINE buffer -- initially contains one blank
C; i cut-c=beginline EX
!
!+
! Special Tabbing Functions
!-
! CONTROL I -- insert a ^I
DEFINE KEY CONTROL I AS '^I.'
!
! GOLD CONTROL I -- adjust indent of selected region
DEFINE KEY GOLD CONTROL I AS 'TADJSR.'
!
! PL/I tab setting -- 4 spaces/indent
SET TAB 4
!
! Initial indent level -- 0 (instead of 1)
C; TD EX
!
!+
! WORD and SENTENCE Entities
!-
SET ENTITY WORD '
()[]{}<>,+-*/|\&=^~`'
SET ENTITY SENTENCE ";"