/*
 * (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;
}
