aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--support/tools/Burg/Makefile102
-rw-r--r--support/tools/Burg/b.h6
-rw-r--r--support/tools/Burg/be.c12
-rw-r--r--support/tools/Burg/fe.h2
-rw-r--r--support/tools/Burg/gram.yc (renamed from support/tools/Burg/gram.y)1
-rw-r--r--support/tools/Burg/lex.c7
-rw-r--r--support/tools/Burg/nonterminal.c2
-rw-r--r--support/tools/Burg/plank.c5
-rw-r--r--support/tools/Burg/zalloc.c2
-rw-r--r--utils/Burg/Makefile102
-rw-r--r--utils/Burg/b.h6
-rw-r--r--utils/Burg/be.c12
-rw-r--r--utils/Burg/fe.h2
-rw-r--r--utils/Burg/gram.yc (renamed from utils/Burg/gram.y)1
-rw-r--r--utils/Burg/lex.c7
-rw-r--r--utils/Burg/nonterminal.c2
-rw-r--r--utils/Burg/plank.c5
-rw-r--r--utils/Burg/zalloc.c2
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);