128 lines
3 KiB
Text
128 lines
3 KiB
Text
--- parse.y.orig 1993-03-03 22:10:03.000000000 +0100
|
|
+++ parse.y 2013-06-17 00:03:43.000000000 +0200
|
|
@@ -1,9 +1,10 @@
|
|
%{
|
|
/* pathalias -- by steve bellovin, as told to peter honeyman */
|
|
#ifndef lint
|
|
-static char *sccsid = "@(#)parse.y 9.11 91/06/01";
|
|
+static const char *sccsid = "@(#)parse.y 9.11 91/06/01";
|
|
#endif /* lint */
|
|
|
|
+#include <unistd.h>
|
|
#include "def.h"
|
|
|
|
/* scanner states (yylex, parse) */
|
|
@@ -14,22 +15,16 @@
|
|
|
|
/* exports */
|
|
long Tcount;
|
|
-extern void yyerror();
|
|
|
|
/* imports */
|
|
-extern node *addnode(), *addprivate();
|
|
-extern void fixprivate(), alias(), deadlink(), deletelink();
|
|
-extern link *addlink();
|
|
-extern int strcmp();
|
|
-extern char *strsave();
|
|
-extern int optind;
|
|
-extern char *Cfile, *Netchars, **Argv;
|
|
-extern int Lineno, Argc;
|
|
-extern node *Home;
|
|
|
|
/* privates */
|
|
-STATIC void fixnet(), adjust();
|
|
-STATIC int yylex(), yywrap(), getword();
|
|
+STATIC void fixnet(register node *network, node *nlist, Cost cost, int netchar, int netdir);
|
|
+STATIC void adjust(node *n, Cost cost);
|
|
+STATIC int yylex(void);
|
|
+STATIC int yywrap(void);
|
|
+STATIC int getword(register char *str, register int c);
|
|
+static const char *Netchars = "!:@%"; /* sparse, but sufficient */
|
|
static int Scanstate = NEWLINE; /* scanner (yylex) state */
|
|
|
|
/* flags for ys_flags */
|
|
@@ -78,7 +73,7 @@
|
|
;
|
|
|
|
links : host site cost {
|
|
- struct link *l;
|
|
+ struct palink *l;
|
|
|
|
l = addlink($1, $2.ys_node, $3, $2.ys_net, $2.ys_dir);
|
|
if (GATEWAYED($2.ys_node))
|
|
@@ -87,7 +82,7 @@
|
|
l->l_flag |= LTERMINAL;
|
|
}
|
|
| links ',' site cost {
|
|
- struct link *l;
|
|
+ struct palink *l;
|
|
|
|
l = addlink($1, $3.ys_node, $4, $3.ys_net, $3.ys_dir);
|
|
if (GATEWAYED($3.ys_node))
|
|
@@ -99,11 +94,11 @@
|
|
;
|
|
|
|
host : HOST {$$ = addnode($1);}
|
|
- | PRIVATE {$$ = addnode("private");}
|
|
- | DEAD {$$ = addnode("dead");}
|
|
- | DELETE {$$ = addnode("delete");}
|
|
- | FILETOK {$$ = addnode("file");}
|
|
- | ADJUST {$$ = addnode("adjust");}
|
|
+ | PRIVATE {$$ = addnode(strsave("private"));}
|
|
+ | DEAD {$$ = addnode(strsave("dead"));}
|
|
+ | DELETE {$$ = addnode(strsave("delete"));}
|
|
+ | FILETOK {$$ = addnode(strsave("file"));}
|
|
+ | ADJUST {$$ = addnode(strsave("adjust"));}
|
|
;
|
|
|
|
site : asite {
|
|
@@ -238,18 +233,18 @@
|
|
%%
|
|
|
|
void
|
|
-#ifdef YYDEBUG
|
|
+#if YYDEBUG
|
|
/*VARARGS1*/
|
|
yyerror(fmt, arg)
|
|
- char *fmt, *arg;
|
|
+ const char *fmt, *arg;
|
|
#else
|
|
yyerror(s)
|
|
- char *s;
|
|
+ const char *s;
|
|
#endif
|
|
{
|
|
/* a concession to bsd error(1) */
|
|
fprintf(stderr, "\"%s\", ", Cfile);
|
|
-#ifdef YYDEBUG
|
|
+#if YYDEBUG
|
|
fprintf(stderr, "line %d: ", Lineno);
|
|
fprintf(stderr, fmt, arg);
|
|
putc('\n', stderr);
|
|
@@ -279,7 +274,7 @@
|
|
Cost cost;
|
|
char netchar, netdir;
|
|
{ register node *member, *nextnet;
|
|
- link *l;
|
|
+ palink *l;
|
|
static int netanon = 0;
|
|
char anon[25];
|
|
|
|
@@ -314,7 +309,7 @@
|
|
#define NLRETURN() {Scanstate = NEWLINE; return EOL;}
|
|
|
|
static struct ctable {
|
|
- char *cname;
|
|
+ const char *cname;
|
|
Cost cval;
|
|
} ctable[] = {
|
|
/* ordered by frequency of appearance in a "typical" dataset */
|
|
@@ -524,7 +519,7 @@
|
|
adjust(n, cost)
|
|
node *n;
|
|
Cost cost;
|
|
-{ link *l;
|
|
+{ palink *l;
|
|
|
|
n->n_cost += cost; /* cumulative */
|
|
|