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