|
|
1.1 root 1: #include <stdio.h>
2: #include <path.h>
3: #include "bc.h"
4:
5: #define LIBNAME "lib.b"
6:
7: main(argc, argv)
8: register int argc;
9: register char *argv[];
10: {
11: register FILE *fp;
12:
13: init();
14: ++argv;
15: if (--argc > 0 && **argv == '-')
16: if (strcmp(*argv, "-l") == 0
17: || strcmp(*argv, "-L") == 0) {
18: static char lib[] = LIBNAME;
19: register char *lp;
20: extern char *getenv();
21: lp = (lp=getenv("LIBPATH")) ? lp : DEFLIBPATH;
22: if ((lp = path(lp, lib, AREAD)) == 0
23: || (fp = fopen(lp, "r")) == 0)
24: die("Can't find %s", lib);
25: scan(fp, lib, 1);
26: --argc;
27: ++argv;
28: } else
29: usage();
30: while (--argc >= 0) {
31: fp = fopen(*argv, "r");
32: if (fp == NULL)
33: die("Can't open %s", *argv);
34: scan(fp, *argv, 1);
35: ++argv;
36: }
37: scan(stdin, NULL, 0);
38: return (0);
39: }
40:
41: scan(fp, fnm, lno)
42: FILE *fp;
43: char *fnm;
44: int lno;
45: {
46: infile = fp;
47: infnam = fnm;
48: inline = lno;
49: yyparse();
50: fclose(fp);
51: }
52:
53: die(str)
54: char *str;
55: {
56: fprintf(stderr, "bc: %r\n", &str);
57: exit(1);
58: }
59:
60: usage()
61: {
62: fprintf(stderr, "Usage: bc [-l] file ... file\n");
63: exit(1);
64: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.