dos_compilers/Digital Research PLI-86 v1/OPTIMIST.PLI

49 lines
1.6 KiB
Plaintext
Raw Permalink Normal View History

2024-06-30 21:01:25 +02:00
/******************************************************/
/* This program demonstrates PL/I character string */
/* processing by turning a negative sentence into a */
/* positive one. */
/******************************************************/
optimist:
procedure options(main);
%replace
true by '1'b,
false by '0'b,
nwords by 5;
declare
negative (1:nwords) character(8) varying static initial
(' never',' none',' nothing',' not',' no'),
positive (1:nwords) character(10) varying static initial
(' always',' all',' something','',' some'),
upper character(28) static initial
('ABCDEFGHIJKLMNOPQRSTUVWXYZ. '),
lower character(28) static initial
('abcdefghijklmnopqrstuvwxyz. '),
sent character(254) varying,
word character(32) varying,
(i,j) fixed;
do while(true);
put skip list('What''s up? ');
sent = ' ';
do while
(substr(sent,length(sent)) ^= '.');
get list (word);
sent = sent !! ' ' !! word;
end;
sent = translate(sent,lower,upper);
if verify(sent,lower) ^= 0 then
sent = ' that''s an interesting idea.';
do i = 1 to nwords;
j = index(sent,negative(i));
if j ^= 0 then
sent = substr(sent,1,j-1) !!
positive(i) !!
substr(sent,j+length(negative(i)));
end;
put list('Actually,'!!sent);
put skip;
end;
end optimist;