Mad Libs: Difference between revisions

Content added Content deleted
(→‎{{header|REXX}}: added the REXX language. -- ~~~~)
m (→‎{{header|REXX}}: typos (mostly))
Line 589: Line 589:


=={{header|REXX}}==
=={{header|REXX}}==
<lang rexx>/*REXX program to prompt user for template subsitutions within a story. */
<lang rexx>/*REXX program to prompt user for template substitutions within a story.*/
@=; @.=; !.=0; #=0; old.= /*assign some defaults. */
@=; @.=; !.=0; #=0; old.= /*assign some defaults. */
parse arg iFID . /*allow use to specify input file*/
parse arg iFID . /*allow user to specify inputfile*/
if iFID=='' then iFID="MAD_LIBS.TXT" /*Not specified? Then use default*/
if iFID=='' then iFID="MAD_LIBS.TXT" /*Not specified? Then use default*/


Line 601: Line 601:
recs=recs-1 /*adjust for E-O-F or blank line.*/
recs=recs-1 /*adjust for E-O-F or blank line.*/


do k=1 /*look for subsitutions in text. */
do k=1 /*look for templates in text. */
parse var @ '<' ? '>' @ /*scan for <xxx> stuff in text.*/
parse var @ '<' ? '>' @ /*scan for <xxx> stuff in text.*/
if ?='' then leave /*if no XXX, then we're done. */
if ?='' then leave /*if no XXX, then we're done. */
Line 610: Line 610:
parse pull ans; if ans\='' then leave
parse pull ans; if ans\='' then leave
end /*forever*/
end /*forever*/
#=#+1 /*bump the subsitute name counter*/
#=#+1 /*bump the template counter */
old.#='<'?">"; new.#=ans /*assign "old" name, "new" name. */
old.#='<'?">"; new.#=ans /*assign "old" name, "new" name. */
end /*k*/
end /*k*/
Line 617: Line 617:


do m=1 for recs /*display the text, line for line*/
do m=1 for recs /*display the text, line for line*/
do n=1 for # /*perform the subsitutions in txt*/
do n=1 for # /*perform substitutions in txt */
@.m=changestr(old.n, @.m, new.n)
@.m=changestr(old.n, @.m, new.n)
end /*n*/
end /*n*/
say @.m /*display (new) subsituted text. */
say @.m /*display (new) substituted text.*/
end /*m*/
end /*m*/