74 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 * (c) copyright 1983 by the Vrije Universiteit, Amsterdam, The Netherlands.
 | 
						|
 *
 | 
						|
 *          This product is part of the Amsterdam Compiler Kit.
 | 
						|
 *
 | 
						|
 * Permission to use, sell, duplicate or disclose this software must be
 | 
						|
 * obtained in writing. Requests for such permissions may be sent to
 | 
						|
 *
 | 
						|
 *      Dr. Andrew S. Tanenbaum
 | 
						|
 *      Wiskundig Seminarium
 | 
						|
 *      Vrije Universiteit
 | 
						|
 *      Postbox 7161
 | 
						|
 *      1007 MC Amsterdam
 | 
						|
 *      The Netherlands
 | 
						|
 *
 | 
						|
 */
 | 
						|
 | 
						|
/*
 | 
						|
 *  L L G E N
 | 
						|
 *
 | 
						|
 *  An Extended LL(1) Parser Generator
 | 
						|
 *
 | 
						|
 *  Author : Ceriel J.H. Jacobs
 | 
						|
 */
 | 
						|
 | 
						|
/*
 | 
						|
 * machdep.c
 | 
						|
 * Machine dependant things
 | 
						|
 */
 | 
						|
 | 
						|
 | 
						|
# include "../../../h/em_path.h"
 | 
						|
# include "types.h"
 | 
						|
 | 
						|
# ifndef NORCSID
 | 
						|
static string rcsid5 = "$Header$";
 | 
						|
# endif
 | 
						|
 | 
						|
/* In this file the following routines are defined: */
 | 
						|
extern	UNLINK();
 | 
						|
extern	RENAME();
 | 
						|
extern string	libpath();
 | 
						|
 | 
						|
UNLINK(x) string x; {
 | 
						|
	/* Must remove the file "x" */
 | 
						|
 | 
						|
	unlink(x);	/* systemcall to remove file */
 | 
						|
}
 | 
						|
 | 
						|
RENAME(x,y) string x,y; {
 | 
						|
	/* Must move the file "x" to the file "y" */
 | 
						|
 | 
						|
	unlink(y);
 | 
						|
	if(link(x,y)!=0)fatal(1,"Cannot link to %s",y);
 | 
						|
	unlink(x);
 | 
						|
}
 | 
						|
 | 
						|
string
 | 
						|
libpath(s) string s; {
 | 
						|
	/* Must deliver a full pathname to the library file "s" */
 | 
						|
 | 
						|
	register string p;
 | 
						|
	register length;
 | 
						|
	p_mem alloc();
 | 
						|
	string strcpy(), strcat();
 | 
						|
	static string subdir = "/lib/LLgen/";
 | 
						|
 | 
						|
	length = strlen(EM_DIR) + strlen(subdir) + strlen(s) + 1;
 | 
						|
	p = (string) alloc((unsigned) length);
 | 
						|
	strcpy(p,EM_DIR);
 | 
						|
	strcat(p,subdir);
 | 
						|
	strcat(p,s);
 | 
						|
	return p;
 | 
						|
}
 |