diff options
-rw-r--r-- | support/tools/Burg/Makefile | 102 | ||||
-rw-r--r-- | support/tools/Burg/b.h | 6 | ||||
-rw-r--r-- | support/tools/Burg/be.c | 12 | ||||
-rw-r--r-- | support/tools/Burg/fe.h | 2 | ||||
-rw-r--r-- | support/tools/Burg/gram.yc (renamed from support/tools/Burg/gram.y) | 1 | ||||
-rw-r--r-- | support/tools/Burg/lex.c | 7 | ||||
-rw-r--r-- | support/tools/Burg/nonterminal.c | 2 | ||||
-rw-r--r-- | support/tools/Burg/plank.c | 5 | ||||
-rw-r--r-- | support/tools/Burg/zalloc.c | 2 | ||||
-rw-r--r-- | utils/Burg/Makefile | 102 | ||||
-rw-r--r-- | utils/Burg/b.h | 6 | ||||
-rw-r--r-- | utils/Burg/be.c | 12 | ||||
-rw-r--r-- | utils/Burg/fe.h | 2 | ||||
-rw-r--r-- | utils/Burg/gram.yc (renamed from utils/Burg/gram.y) | 1 | ||||
-rw-r--r-- | utils/Burg/lex.c | 7 | ||||
-rw-r--r-- | utils/Burg/nonterminal.c | 2 | ||||
-rw-r--r-- | utils/Burg/plank.c | 5 | ||||
-rw-r--r-- | utils/Burg/zalloc.c | 2 |
18 files changed, 72 insertions, 206 deletions
diff --git a/support/tools/Burg/Makefile b/support/tools/Burg/Makefile index c22bd55..a70f2ea 100644 --- a/support/tools/Burg/Makefile +++ b/support/tools/Burg/Makefile @@ -1,100 +1,32 @@ # $Id$ - LEVEL = ../.. +TOOLNAME = burg +EXTRASOURCES = gram.tab.c -UNAME := $(shell uname) -include $(LEVEL)/Makefile.config -include $(LEVEL)/Makefile.$(UNAME) - -TARGET = burg.$(UNAME) - -#CFLAGS = -#CFLAGS = -O -#CFLAGS = -O -DNOLEX -CFLAGS = -g -DDEBUG -#CFLAGS = -g -DNOLEX -DDEBUG - -SRCS = \ - be.c \ - burs.c \ - closure.c \ - delta.c \ - fe.c \ - item.c \ - lex.c \ - list.c \ - main.c \ - map.c \ - nonterminal.c \ - operator.c \ - pattern.c \ - plank.c \ - queue.c \ - rule.c \ - string.c \ - symtab.c \ - table.c \ - trim.c \ - zalloc.c - -BU_OBJS = \ - burs.o \ - closure.o \ - delta.o \ - item.o \ - list.o \ - map.o \ - nonterminal.o \ - operator.o \ - pattern.o \ - queue.o \ - rule.o \ - table.o \ - trim.o \ - zalloc.o - -BU_OBJS := $(addprefix $(UNAME)/,$(BU_OBJS)) - -FE_OBJS = \ - be.o \ - fe.o \ - lex.o \ - main.o \ - plank.o \ - string.o \ - symtab.o \ - y.tab.o - -FE_OBJS := $(addprefix $(UNAME)/,$(FE_OBJS)) - -all: $(TARGET) - - -$(TARGET): $(BU_OBJS) $(FE_OBJS) - $(CC) -o $(TARGET) $(CFLAGS) $(BU_OBJS) $(FE_OBJS) +include $(LEVEL)/Makefile.common -y.tab.c y.tab.h: gram.y - yacc -d gram.y +gram.tab.c gram.tab.h: gram.yc + $(VERB) $(BISON) -d $< + $(VERB) mv -f gram.tab.cc gram.tab.c + $(VERB) mv -f gram.tab.hc gram.tab.h -clean: - rm -rf $(UNAME) *.o y.tab.h y.tab.c core burg *.aux *.log *.dvi sample sample.c tmp +clean:: + rm -ff y.tab.h y.tab.c core *.aux *.log *.dvi sample sample.c tmp $(FE_OBJS): b.h $(BU_OBJS): b.h $(FE_OBJS): fe.h -lex.o: y.tab.h +$(BUILD_ROOT)/Release/lex.o $(BUILD_ROOT)/Profile/lex.o $(BUILD_ROOT)/Debug/lex.o: gram.tab.h doc.dvi: doc.tex latex doc; latex doc -$(UNAME)/%.o: %.c - $(VERB) $(CC) -c -g $< -o $@ -test: $(TARGET) sample.gr - ./$(TARGET) -I <sample.gr >sample.c && cc $(CFLAGS) -o sample sample.c && ./sample - ./$(TARGET) -I sample.gr >tmp && cmp tmp sample.c - ./$(TARGET) -I <sample.gr -o tmp && cmp tmp sample.c - ./$(TARGET) -I sample.gr -o tmp && cmp tmp sample.c - ./$(TARGET) -I -O0 <sample.gr >tmp && cmp tmp sample.c - ./$(TARGET) -I -= <sample.gr >tmp && cmp tmp sample.c +test: $(TOOLEXENAME_G) sample.gr + $(TOOLEXENAME_G) -I <sample.gr >sample.c && $(CC) $(CFLAGS) -o sample sample.c && ./sample + $(TOOLEXENAME_G) -I sample.gr >tmp && cmp tmp sample.c + $(TOOLEXENAME_G) -I <sample.gr -o tmp && cmp tmp sample.c + $(TOOLEXENAME_G) -I sample.gr -o tmp && cmp tmp sample.c + $(TOOLEXENAME_G) -I -O0 <sample.gr >tmp && cmp tmp sample.c + $(TOOLEXENAME_G) -I -= <sample.gr >tmp && cmp tmp sample.c diff --git a/support/tools/Burg/b.h b/support/tools/Burg/b.h index f1b33ed..164325d 100644 --- a/support/tools/Burg/b.h +++ b/support/tools/Burg/b.h @@ -306,6 +306,6 @@ extern int debugTables; extern void doStart ARGS((char *)); extern void exit ARGS((int)); -extern int fatal ARGS((char *, int)); -extern void yyerror ARGS((char *)); -extern void yyerror1 ARGS((char *)); +extern int fatal ARGS((const char *, int)); +extern void yyerror ARGS((const char *)); +extern void yyerror1 ARGS((const char *)); diff --git a/support/tools/Burg/be.c b/support/tools/Burg/be.c index e7feab8..31db211 100644 --- a/support/tools/Burg/be.c +++ b/support/tools/Burg/be.c @@ -8,7 +8,7 @@ char rcsid_be[] = "$Id$"; #define ERROR_VAL 0 FILE *outfile; -char *prefix = "burm"; +const char *prefix = "burm"; static void doKids ARGS((RuleAST)); static void doLabel ARGS((Operator)); @@ -24,7 +24,7 @@ static void printPatternAST_int ARGS((PatternAST)); static void setVectors ARGS((PatternAST)); static void trailing_zeroes ARGS((int)); static int seminal ARGS((int from, int to)); -static void printRule ARGS((RuleAST, char *)); +static void printRule ARGS((RuleAST, const char *)); static void doLabel(op) Operator op; @@ -329,10 +329,10 @@ makeLHSmap() fprintf(outfile, "\t0,\n"); } } - fprintf(outfile, "};\n\n", prefix); + fprintf(outfile, "};\n\n"); } -static int seminal(from, to) +static int seminal(int from, int to) { return allpairs[from][to].rule ? allpairs[from][to].rule->erulenum : 0; @@ -453,7 +453,7 @@ makeDeltaCostArray() for (s = 0; s < states-1; s++) { fprintf(outfile, "{ /* state #%d: ", s+1); printRepresentative(outfile, sortedStates[s]); - fprintf(outfile, " */\n", s+1); + fprintf(outfile, " */\n"); fprintf(outfile, "\t{0},\n"); for (nt = 1; nt < last_user_nonterminal; nt++) { makeCostVector(1, sortedStates[s]->closed[nt].delta); @@ -616,7 +616,7 @@ makeNts() } static void -printRule(r,d) RuleAST r; char *d; +printRule(RuleAST r, const char *d) { if (r) { fprintf(outfile, "%s: ", r->rule->lhs->name); diff --git a/support/tools/Burg/fe.h b/support/tools/Burg/fe.h index 5cef79b..70e98e2 100644 --- a/support/tools/Burg/fe.h +++ b/support/tools/Burg/fe.h @@ -121,7 +121,7 @@ extern int max_ruleAST; extern List ruleASTs; extern FILE *outfile; -extern char *prefix; +extern const char *prefix; extern int trimflag; extern int speedflag; extern int grammarflag; diff --git a/support/tools/Burg/gram.y b/support/tools/Burg/gram.yc index f6f16fa..ec692c3 100644 --- a/support/tools/Burg/gram.y +++ b/support/tools/Burg/gram.yc @@ -4,6 +4,7 @@ char rcsid_gram[] = "$Id$"; #include <stdio.h> #include "b.h" #include "fe.h" +int doGram(List); %} %union { diff --git a/support/tools/Burg/lex.c b/support/tools/Burg/lex.c index 3d6c5af..85eb8a7 100644 --- a/support/tools/Burg/lex.c +++ b/support/tools/Burg/lex.c @@ -5,7 +5,7 @@ char rcsid_lex[] = "$Id$"; #include <string.h> #include "b.h" #include "fe.h" -#include "y.tab.h" +#include "gram.tab.h" static char buf[BUFSIZ]; @@ -245,14 +245,13 @@ yylex() return(0); } -void -yyerror1(str) char *str; +void yyerror1(const char *str) { fprintf(stderr, "line %d: %s", yyline, str); } void -yyerror(str) char *str; +yyerror(const char *str) { yyerror1(str); fprintf(stderr, "\n"); diff --git a/support/tools/Burg/nonterminal.c b/support/tools/Burg/nonterminal.c index af88dd6..71fd7d4 100644 --- a/support/tools/Burg/nonterminal.c +++ b/support/tools/Burg/nonterminal.c @@ -2,6 +2,7 @@ char rcsid_nonterminal[] = "$Id$"; #include "b.h" #include <stdio.h> +#include <string.h> NonTerminal start; NonTerminalNum max_nonterminal = 1; @@ -29,7 +30,6 @@ int nonTerminalName(buf, i) char *buf; int i; { List l; - extern char *strcpy ARGS((char *, char *)); for (l = nonterminals; l; l = l->next) { NonTerminal nt = (NonTerminal) l->x; diff --git a/support/tools/Burg/plank.c b/support/tools/Burg/plank.c index 053304e..e6ba38b 100644 --- a/support/tools/Burg/plank.c +++ b/support/tools/Burg/plank.c @@ -2,6 +2,7 @@ char rcsid_plank[] = "$Id$"; #include <stdio.h> #include <string.h> +#include <stdlib.h> #include "b.h" #include "fe.h" @@ -35,7 +36,7 @@ static void purgePlanks ARGS((List)); static void inToEx ARGS((void)); static void makePlankRuleMacros ARGS((void)); static void makePlankRule ARGS((void)); -static void exceptionSwitch ARGS((List, char *, char *, char *, int, char *)); +static void exceptionSwitch ARGS((List, const char *, const char *, const char *, int, const char *)); static void doPlankLabel ARGS((Operator)); static void doPlankLabelSafely ARGS((Operator)); static void doPlankLabelMacrosSafely ARGS((Operator)); @@ -602,7 +603,7 @@ makePlankRule() } static void -exceptionSwitch(es, sw, pre, post, offset, def) List es; char *sw; char *pre; char *post; int offset; char *def; +exceptionSwitch(es, sw, pre, post, offset, def) List es; const char *sw; const char *pre; const char *post; int offset; const char *def; { if (es) { fprintf(outfile, "\t\tswitch (%s) {\n", sw); diff --git a/support/tools/Burg/zalloc.c b/support/tools/Burg/zalloc.c index bd50217..9128e42 100644 --- a/support/tools/Burg/zalloc.c +++ b/support/tools/Burg/zalloc.c @@ -9,7 +9,7 @@ extern void free ARGS((void *)); extern void *malloc ARGS((unsigned)); int -fatal(name, line) char *name; int line; +fatal(const char *name, int line) { fprintf(stderr, "assertion failed: file %s, line %d\n", name, line); exit(1); diff --git a/utils/Burg/Makefile b/utils/Burg/Makefile index c22bd55..a70f2ea 100644 --- a/utils/Burg/Makefile +++ b/utils/Burg/Makefile @@ -1,100 +1,32 @@ # $Id$ - LEVEL = ../.. +TOOLNAME = burg +EXTRASOURCES = gram.tab.c -UNAME := $(shell uname) -include $(LEVEL)/Makefile.config -include $(LEVEL)/Makefile.$(UNAME) - -TARGET = burg.$(UNAME) - -#CFLAGS = -#CFLAGS = -O -#CFLAGS = -O -DNOLEX -CFLAGS = -g -DDEBUG -#CFLAGS = -g -DNOLEX -DDEBUG - -SRCS = \ - be.c \ - burs.c \ - closure.c \ - delta.c \ - fe.c \ - item.c \ - lex.c \ - list.c \ - main.c \ - map.c \ - nonterminal.c \ - operator.c \ - pattern.c \ - plank.c \ - queue.c \ - rule.c \ - string.c \ - symtab.c \ - table.c \ - trim.c \ - zalloc.c - -BU_OBJS = \ - burs.o \ - closure.o \ - delta.o \ - item.o \ - list.o \ - map.o \ - nonterminal.o \ - operator.o \ - pattern.o \ - queue.o \ - rule.o \ - table.o \ - trim.o \ - zalloc.o - -BU_OBJS := $(addprefix $(UNAME)/,$(BU_OBJS)) - -FE_OBJS = \ - be.o \ - fe.o \ - lex.o \ - main.o \ - plank.o \ - string.o \ - symtab.o \ - y.tab.o - -FE_OBJS := $(addprefix $(UNAME)/,$(FE_OBJS)) - -all: $(TARGET) - - -$(TARGET): $(BU_OBJS) $(FE_OBJS) - $(CC) -o $(TARGET) $(CFLAGS) $(BU_OBJS) $(FE_OBJS) +include $(LEVEL)/Makefile.common -y.tab.c y.tab.h: gram.y - yacc -d gram.y +gram.tab.c gram.tab.h: gram.yc + $(VERB) $(BISON) -d $< + $(VERB) mv -f gram.tab.cc gram.tab.c + $(VERB) mv -f gram.tab.hc gram.tab.h -clean: - rm -rf $(UNAME) *.o y.tab.h y.tab.c core burg *.aux *.log *.dvi sample sample.c tmp +clean:: + rm -ff y.tab.h y.tab.c core *.aux *.log *.dvi sample sample.c tmp $(FE_OBJS): b.h $(BU_OBJS): b.h $(FE_OBJS): fe.h -lex.o: y.tab.h +$(BUILD_ROOT)/Release/lex.o $(BUILD_ROOT)/Profile/lex.o $(BUILD_ROOT)/Debug/lex.o: gram.tab.h doc.dvi: doc.tex latex doc; latex doc -$(UNAME)/%.o: %.c - $(VERB) $(CC) -c -g $< -o $@ -test: $(TARGET) sample.gr - ./$(TARGET) -I <sample.gr >sample.c && cc $(CFLAGS) -o sample sample.c && ./sample - ./$(TARGET) -I sample.gr >tmp && cmp tmp sample.c - ./$(TARGET) -I <sample.gr -o tmp && cmp tmp sample.c - ./$(TARGET) -I sample.gr -o tmp && cmp tmp sample.c - ./$(TARGET) -I -O0 <sample.gr >tmp && cmp tmp sample.c - ./$(TARGET) -I -= <sample.gr >tmp && cmp tmp sample.c +test: $(TOOLEXENAME_G) sample.gr + $(TOOLEXENAME_G) -I <sample.gr >sample.c && $(CC) $(CFLAGS) -o sample sample.c && ./sample + $(TOOLEXENAME_G) -I sample.gr >tmp && cmp tmp sample.c + $(TOOLEXENAME_G) -I <sample.gr -o tmp && cmp tmp sample.c + $(TOOLEXENAME_G) -I sample.gr -o tmp && cmp tmp sample.c + $(TOOLEXENAME_G) -I -O0 <sample.gr >tmp && cmp tmp sample.c + $(TOOLEXENAME_G) -I -= <sample.gr >tmp && cmp tmp sample.c diff --git a/utils/Burg/b.h b/utils/Burg/b.h index f1b33ed..164325d 100644 --- a/utils/Burg/b.h +++ b/utils/Burg/b.h @@ -306,6 +306,6 @@ extern int debugTables; extern void doStart ARGS((char *)); extern void exit ARGS((int)); -extern int fatal ARGS((char *, int)); -extern void yyerror ARGS((char *)); -extern void yyerror1 ARGS((char *)); +extern int fatal ARGS((const char *, int)); +extern void yyerror ARGS((const char *)); +extern void yyerror1 ARGS((const char *)); diff --git a/utils/Burg/be.c b/utils/Burg/be.c index e7feab8..31db211 100644 --- a/utils/Burg/be.c +++ b/utils/Burg/be.c @@ -8,7 +8,7 @@ char rcsid_be[] = "$Id$"; #define ERROR_VAL 0 FILE *outfile; -char *prefix = "burm"; +const char *prefix = "burm"; static void doKids ARGS((RuleAST)); static void doLabel ARGS((Operator)); @@ -24,7 +24,7 @@ static void printPatternAST_int ARGS((PatternAST)); static void setVectors ARGS((PatternAST)); static void trailing_zeroes ARGS((int)); static int seminal ARGS((int from, int to)); -static void printRule ARGS((RuleAST, char *)); +static void printRule ARGS((RuleAST, const char *)); static void doLabel(op) Operator op; @@ -329,10 +329,10 @@ makeLHSmap() fprintf(outfile, "\t0,\n"); } } - fprintf(outfile, "};\n\n", prefix); + fprintf(outfile, "};\n\n"); } -static int seminal(from, to) +static int seminal(int from, int to) { return allpairs[from][to].rule ? allpairs[from][to].rule->erulenum : 0; @@ -453,7 +453,7 @@ makeDeltaCostArray() for (s = 0; s < states-1; s++) { fprintf(outfile, "{ /* state #%d: ", s+1); printRepresentative(outfile, sortedStates[s]); - fprintf(outfile, " */\n", s+1); + fprintf(outfile, " */\n"); fprintf(outfile, "\t{0},\n"); for (nt = 1; nt < last_user_nonterminal; nt++) { makeCostVector(1, sortedStates[s]->closed[nt].delta); @@ -616,7 +616,7 @@ makeNts() } static void -printRule(r,d) RuleAST r; char *d; +printRule(RuleAST r, const char *d) { if (r) { fprintf(outfile, "%s: ", r->rule->lhs->name); diff --git a/utils/Burg/fe.h b/utils/Burg/fe.h index 5cef79b..70e98e2 100644 --- a/utils/Burg/fe.h +++ b/utils/Burg/fe.h @@ -121,7 +121,7 @@ extern int max_ruleAST; extern List ruleASTs; extern FILE *outfile; -extern char *prefix; +extern const char *prefix; extern int trimflag; extern int speedflag; extern int grammarflag; diff --git a/utils/Burg/gram.y b/utils/Burg/gram.yc index f6f16fa..ec692c3 100644 --- a/utils/Burg/gram.y +++ b/utils/Burg/gram.yc @@ -4,6 +4,7 @@ char rcsid_gram[] = "$Id$"; #include <stdio.h> #include "b.h" #include "fe.h" +int doGram(List); %} %union { diff --git a/utils/Burg/lex.c b/utils/Burg/lex.c index 3d6c5af..85eb8a7 100644 --- a/utils/Burg/lex.c +++ b/utils/Burg/lex.c @@ -5,7 +5,7 @@ char rcsid_lex[] = "$Id$"; #include <string.h> #include "b.h" #include "fe.h" -#include "y.tab.h" +#include "gram.tab.h" static char buf[BUFSIZ]; @@ -245,14 +245,13 @@ yylex() return(0); } -void -yyerror1(str) char *str; +void yyerror1(const char *str) { fprintf(stderr, "line %d: %s", yyline, str); } void -yyerror(str) char *str; +yyerror(const char *str) { yyerror1(str); fprintf(stderr, "\n"); diff --git a/utils/Burg/nonterminal.c b/utils/Burg/nonterminal.c index af88dd6..71fd7d4 100644 --- a/utils/Burg/nonterminal.c +++ b/utils/Burg/nonterminal.c @@ -2,6 +2,7 @@ char rcsid_nonterminal[] = "$Id$"; #include "b.h" #include <stdio.h> +#include <string.h> NonTerminal start; NonTerminalNum max_nonterminal = 1; @@ -29,7 +30,6 @@ int nonTerminalName(buf, i) char *buf; int i; { List l; - extern char *strcpy ARGS((char *, char *)); for (l = nonterminals; l; l = l->next) { NonTerminal nt = (NonTerminal) l->x; diff --git a/utils/Burg/plank.c b/utils/Burg/plank.c index 053304e..e6ba38b 100644 --- a/utils/Burg/plank.c +++ b/utils/Burg/plank.c @@ -2,6 +2,7 @@ char rcsid_plank[] = "$Id$"; #include <stdio.h> #include <string.h> +#include <stdlib.h> #include "b.h" #include "fe.h" @@ -35,7 +36,7 @@ static void purgePlanks ARGS((List)); static void inToEx ARGS((void)); static void makePlankRuleMacros ARGS((void)); static void makePlankRule ARGS((void)); -static void exceptionSwitch ARGS((List, char *, char *, char *, int, char *)); +static void exceptionSwitch ARGS((List, const char *, const char *, const char *, int, const char *)); static void doPlankLabel ARGS((Operator)); static void doPlankLabelSafely ARGS((Operator)); static void doPlankLabelMacrosSafely ARGS((Operator)); @@ -602,7 +603,7 @@ makePlankRule() } static void -exceptionSwitch(es, sw, pre, post, offset, def) List es; char *sw; char *pre; char *post; int offset; char *def; +exceptionSwitch(es, sw, pre, post, offset, def) List es; const char *sw; const char *pre; const char *post; int offset; const char *def; { if (es) { fprintf(outfile, "\t\tswitch (%s) {\n", sw); diff --git a/utils/Burg/zalloc.c b/utils/Burg/zalloc.c index bd50217..9128e42 100644 --- a/utils/Burg/zalloc.c +++ b/utils/Burg/zalloc.c @@ -9,7 +9,7 @@ extern void free ARGS((void *)); extern void *malloc ARGS((unsigned)); int -fatal(name, line) char *name; int line; +fatal(const char *name, int line) { fprintf(stderr, "assertion failed: file %s, line %d\n", name, line); exit(1); |