* From: p.a.coppen@let.kun.nl
* Date: Wed, 26 Feb 1997 10:46:03 -0600 (CST)
*---------------------------------------------------------------------*
*								      *
*	Call: NOT(P)						      *
*	Purpose: returns a pattern that will match nullstring	      *
*		 if P fails and fail if P matches.		      *
*	Cross-references: UNIQUE(),  FENCE() (FENCE() is available    *
*			  in many current implementations. It cannot  *
*			  be coded entirely in other implementations. *
*			  Cf. the remarks in the header of	      *
*			  FENCE() in this file.			      *
*	Remarks: NOT() is insensitive to the &FULLSCAN or &ANCHOR     *
*		 setting. If the system FENCE() is used, a pattern    *
*		 like NOT(p1 | p2 | p3 | ABORT) will ABORT only	      *
*		 if p1, p2 and p3 all fail. If the FENCE() from this  *
*		 file is used, this pattern will ABORT always.	      *
*								      *
*---------------------------------------------------------------------*
-INCLUDE "unique.sno"
-INCLUDE "fence.sno"
	DEFINE("NOT(P)N")				     :(NOT_END)
NOT	N = UNIQUE()
	NOT = EVAL('FENCE(@' N ' P | "" $ ' N ') $ '
+		   '*$("' N '" IDENT(' N '))')		      :(RETURN)
NOT_END
