ack/util/LLgen/src/machdep.c
1984-10-09 11:43:19 +00:00

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;
}