Source file reassign.icn
#############################################################################
#
#	File:     reassign.icn
#
#	Subject:  Procedures to access RE groupings and format into a string
#
#	Author:   David A. Gamey
#
#	Date:     May 2, 2001
#
#############################################################################
#
#   This file is in the public domain.
#
#############################################################################
#
#     Descriptions:
#
#     ReAssign( s ) : s2
#
#        Replaces sequences of \n in s with the corresponding parenthesis
#        groups from the last regular expression match/find (if one exists).
#
#        Special characters:
#        \n	use nth parenthesis group
#        \\	escaped \
#        \n.i   nth group followed by a number
#
#
#############################################################################
#
#  Links:  regexp
#
############################################################################

link regexp

procedure ReAssign( s )
local s1, n

s1 := ""

s ?
{ 
   while s1 := 1( tab(upto('\\')), move(1) ) do
   { 
         if s1 ||:= ="\\" then next
         if n := integer(tab(many(&digits))) then
         {
            n := Re_ParenGroups[n]
            s1 ||:= n 
            if ( =".", tab(any(&digits)) ) then move(-1)
         }
   }
   return s1 ||:= tab(0)
}
end

This page produced by UniDoc on 2021/04/15 @ 23:59:44.