a33d4cdbba
several calls. Now it uses alloc.
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;
|
|
}
|