From 9c9bfa7f29cccd08f479d9726f485bfae72b647b Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Sun, 22 Sep 2002 02:40:40 +0000 Subject: Fix tons of warnings, convert burg to use Makefile.common system, rename gram.y to gram.yc so that we don't try to turn it into a .cpp file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3874 91177308-0d34-0410-b5e6-96231b3b80d8 --- utils/Burg/Makefile | 102 ++++++++--------------------------------------- utils/Burg/b.h | 6 +-- utils/Burg/be.c | 12 +++--- utils/Burg/fe.h | 2 +- utils/Burg/gram.y | 90 ----------------------------------------- utils/Burg/gram.yc | 91 ++++++++++++++++++++++++++++++++++++++++++ utils/Burg/lex.c | 7 ++-- utils/Burg/nonterminal.c | 2 +- utils/Burg/plank.c | 5 ++- utils/Burg/zalloc.c | 2 +- 10 files changed, 126 insertions(+), 193 deletions(-) delete mode 100644 utils/Burg/gram.y create mode 100644 utils/Burg/gram.yc (limited to 'utils') diff --git a/utils/Burg/Makefile b/utils/Burg/Makefile index c22bd552e8..a70f2eaaf9 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.c && cc $(CFLAGS) -o sample sample.c && ./sample - ./$(TARGET) -I sample.gr >tmp && cmp tmp sample.c - ./$(TARGET) -I tmp && cmp tmp sample.c - ./$(TARGET) -I -= tmp && cmp tmp sample.c +test: $(TOOLEXENAME_G) sample.gr + $(TOOLEXENAME_G) -I sample.c && $(CC) $(CFLAGS) -o sample sample.c && ./sample + $(TOOLEXENAME_G) -I sample.gr >tmp && cmp tmp sample.c + $(TOOLEXENAME_G) -I tmp && cmp tmp sample.c + $(TOOLEXENAME_G) -I -= tmp && cmp tmp sample.c diff --git a/utils/Burg/b.h b/utils/Burg/b.h index f1b33edd94..164325dc97 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 e7feab8d5d..31db211a70 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 5cef79bbe1..70e98e2215 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.y deleted file mode 100644 index f6f16faf8e..0000000000 --- a/utils/Burg/gram.y +++ /dev/null @@ -1,90 +0,0 @@ -%{ -char rcsid_gram[] = "$Id$"; - -#include -#include "b.h" -#include "fe.h" -%} - -%union { - int y_int; - char *y_string; - Arity y_arity; - Binding y_binding; - PatternAST y_patternAST; - RuleAST y_ruleAST; - List y_list; - IntList y_intlist; -} - -%start full - -%term ERROR -%term K_TERM -%term K_GRAM -%term K_START -%term K_PPERCENT -%term INT -%term ID - -%token ID -%token INT - -%type decl -%type binding -%type cost costtail -%type rule -%type pattern -%type decls rules bindinglist grammarlist -%% - - -full : spec - | spec K_PPERCENT - { yyfinished(); } - ; - -spec : decls K_PPERCENT rules - = { doSpec($1, $3); } - ; - -decls : /* lambda */ = { $$ = 0; } - | decls decl = { $$ = newList($2, $1); } - ; - -decl : K_TERM bindinglist = { $$ = newArity(-1, $2); } - | K_GRAM grammarlist = { $$ = 0; doGram($2); } - | K_START ID = { $$ = 0; doStart($2); } /* kludge */ - ; - -grammarlist : /* lambda */ = { $$ = 0; } - | grammarlist ID = { $$ = newList($2, $1); } - ; - -bindinglist : /* lambda */ = { $$ = 0; } - | bindinglist binding = { $$ = newList($2, $1); } - ; - -binding : ID '=' INT = { $$ = newBinding($1, $3); } - ; - -rules : /* lambda */ = { $$ = 0; } - | rules rule = { $$ = newList($2, $1); } - ; - -rule : ID ':' pattern '=' INT cost ';' = { $$ = newRuleAST($1, $3, $5, $6); } - ; - -pattern : ID = { $$ = newPatternAST($1, 0); } - | ID '(' pattern ')' = { $$ = newPatternAST($1, newList($3,0)); } - | ID '(' pattern ',' pattern ')' = { $$ = newPatternAST($1, newList($3, newList($5, 0))); } - ; - -cost : /* lambda */ = { $$ = 0; } - | '(' INT costtail ')' = { $$ = newIntList($2, $3); } - ; - -costtail : /* lambda */ = { $$ = 0; } - | ',' INT costtail = { $$ = newIntList($2, $3); } - | INT costtail = { $$ = newIntList($1, $2); } - ; diff --git a/utils/Burg/gram.yc b/utils/Burg/gram.yc new file mode 100644 index 0000000000..ec692c38c1 --- /dev/null +++ b/utils/Burg/gram.yc @@ -0,0 +1,91 @@ +%{ +char rcsid_gram[] = "$Id$"; + +#include +#include "b.h" +#include "fe.h" +int doGram(List); +%} + +%union { + int y_int; + char *y_string; + Arity y_arity; + Binding y_binding; + PatternAST y_patternAST; + RuleAST y_ruleAST; + List y_list; + IntList y_intlist; +} + +%start full + +%term ERROR +%term K_TERM +%term K_GRAM +%term K_START +%term K_PPERCENT +%term INT +%term ID + +%token ID +%token INT + +%type decl +%type binding +%type cost costtail +%type rule +%type pattern +%type decls rules bindinglist grammarlist +%% + + +full : spec + | spec K_PPERCENT + { yyfinished(); } + ; + +spec : decls K_PPERCENT rules + = { doSpec($1, $3); } + ; + +decls : /* lambda */ = { $$ = 0; } + | decls decl = { $$ = newList($2, $1); } + ; + +decl : K_TERM bindinglist = { $$ = newArity(-1, $2); } + | K_GRAM grammarlist = { $$ = 0; doGram($2); } + | K_START ID = { $$ = 0; doStart($2); } /* kludge */ + ; + +grammarlist : /* lambda */ = { $$ = 0; } + | grammarlist ID = { $$ = newList($2, $1); } + ; + +bindinglist : /* lambda */ = { $$ = 0; } + | bindinglist binding = { $$ = newList($2, $1); } + ; + +binding : ID '=' INT = { $$ = newBinding($1, $3); } + ; + +rules : /* lambda */ = { $$ = 0; } + | rules rule = { $$ = newList($2, $1); } + ; + +rule : ID ':' pattern '=' INT cost ';' = { $$ = newRuleAST($1, $3, $5, $6); } + ; + +pattern : ID = { $$ = newPatternAST($1, 0); } + | ID '(' pattern ')' = { $$ = newPatternAST($1, newList($3,0)); } + | ID '(' pattern ',' pattern ')' = { $$ = newPatternAST($1, newList($3, newList($5, 0))); } + ; + +cost : /* lambda */ = { $$ = 0; } + | '(' INT costtail ')' = { $$ = newIntList($2, $3); } + ; + +costtail : /* lambda */ = { $$ = 0; } + | ',' INT costtail = { $$ = newIntList($2, $3); } + | INT costtail = { $$ = newIntList($1, $2); } + ; diff --git a/utils/Burg/lex.c b/utils/Burg/lex.c index 3d6c5af5c4..85eb8a738f 100644 --- a/utils/Burg/lex.c +++ b/utils/Burg/lex.c @@ -5,7 +5,7 @@ char rcsid_lex[] = "$Id$"; #include #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 af88dd61ea..71fd7d4944 100644 --- a/utils/Burg/nonterminal.c +++ b/utils/Burg/nonterminal.c @@ -2,6 +2,7 @@ char rcsid_nonterminal[] = "$Id$"; #include "b.h" #include +#include 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 053304eafc..e6ba38ba80 100644 --- a/utils/Burg/plank.c +++ b/utils/Burg/plank.c @@ -2,6 +2,7 @@ char rcsid_plank[] = "$Id$"; #include #include +#include #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 bd50217308..9128e4280f 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); -- cgit v1.2.3