diff options
Diffstat (limited to 'src/cmd/gc/mkbuiltin1.c')
-rw-r--r-- | src/cmd/gc/mkbuiltin1.c | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/src/cmd/gc/mkbuiltin1.c b/src/cmd/gc/mkbuiltin1.c deleted file mode 100644 index aa28e295b..000000000 --- a/src/cmd/gc/mkbuiltin1.c +++ /dev/null @@ -1,90 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Compile .go file, import data from .6 file, and generate C string version. - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <ctype.h> -#include <errno.h> - -void esc(char*); - -int -main(int argc, char **argv) -{ - char *name; - FILE *fin; - char buf[1024], initfunc[1024], *p, *q; - - if(argc != 2) { - fprintf(stderr, "usage: mkbuiltin1 sys\n"); - fprintf(stderr, "in file $1.6 s/PACKAGE/$1/\n"); - exit(1); - } - - name = argv[1]; - snprintf(initfunc, sizeof(initfunc), "init_%s_function", name); - - snprintf(buf, sizeof(buf), "%s.%s", name, getenv("O")); - if((fin = fopen(buf, "r")) == NULL) { - fprintf(stderr, "open %s: %s\n", buf, strerror(errno)); - exit(1); - } - - // look for $$ that introduces imports - while(fgets(buf, sizeof buf, fin) != NULL) - if(strstr(buf, "$$")) - goto begin; - fprintf(stderr, "did not find beginning of imports\n"); - exit(1); - -begin: - printf("char *%simport =\n", name); - - // process imports, stopping at $$ that closes them - while(fgets(buf, sizeof buf, fin) != NULL) { - buf[strlen(buf)-1] = 0; // chop \n - if(strstr(buf, "$$")) - goto end; - - // chop leading white space - for(p=buf; *p==' ' || *p == '\t'; p++) - ; - - // cut out decl of init_$1_function - it doesn't exist - if(strstr(buf, initfunc)) - continue; - - // sys.go claims to be in package PACKAGE to avoid - // conflicts during "6g sys.go". rename PACKAGE to $2. - printf("\t\""); - while(q = strstr(p, "PACKAGE")) { - *q = 0; - esc(p); // up to the substitution - printf("%s", name); // the sub name - p = q+7; // continue with rest - } - - esc(p); - printf("\\n\"\n", p); - } - fprintf(stderr, "did not find end of imports\n"); - exit(1); - -end: - printf("\t\"$$\\n\";\n"); - return 0; -} - -void -esc(char *p) -{ - for(; *p; p++) { - if(*p == '\\' || *p == '\"') - printf("\\"); - putchar(*p); - } -} |