* From: p.a.coppen@let.kun.nl
* Date: Wed, 26 Feb 1997 10:46:03 -0600 (CST)
*---------------------------------------------------------------------*
*								      *
*	Call: UNIQUE(I)						      *
*	Purpose: returns a string that can be used as a unique	      *
*		 variable name.					      *
*								      *
*	Remark: If UNIQUE() is called with a non-nullstring argument, *
*		all unique variables are cleared, and the global      *
*		variable UNIQUE_ is set to 0.			      *
*								      *
*	Remarks: Gimpel generates unique variable names with the      *
*		 keyword &STCOUNT. However, in some implementations   *
*		 &STCOUNT is not updated if the keyword &STLIMIT      *
*		 is set to -1.					      *
*								      *
*	Side-effect: This function uses a global variable UNIQUE_     *
*		     Its value may not be changed. Unless you know    *
*		     better what you're doing than SNOBOL does.	      *
*								      *
*---------------------------------------------------------------------*
	DEFINE("UNIQUE(I)")				  :(UNIQUE_END)
UNIQUE	UNIQUE_ = IDENT(I) UNIQUE_ + 1			    :F(UNIQUEC)
	UNIQUE	= "U" UNIQUE_ "_"			      :(RETURN)
UNIQUEC $("U" UNIQUE_ "_") = ?(UNIQUE_ = GT(UNIQUE_,0) UNIQUE_ - 1)
+						   :S(UNIQUEC)F(RETURN)
UNIQUE_END
