diff options
author | Ondřej Surý <ondrej@sury.org> | 2011-01-17 12:40:45 +0100 |
---|---|---|
committer | Ondřej Surý <ondrej@sury.org> | 2011-01-17 12:40:45 +0100 |
commit | 3e45412327a2654a77944249962b3652e6142299 (patch) | |
tree | bc3bf69452afa055423cbe0c5cfa8ca357df6ccf /src/cmd/goyacc | |
parent | c533680039762cacbc37db8dc7eed074c3e497be (diff) | |
download | golang-upstream/2011.01.12.tar.gz |
Imported Upstream version 2011.01.12upstream/2011.01.12
Diffstat (limited to 'src/cmd/goyacc')
-rw-r--r-- | src/cmd/goyacc/Makefile | 2 | ||||
-rw-r--r-- | src/cmd/goyacc/goyacc.go | 41 | ||||
-rw-r--r-- | src/cmd/goyacc/units.y | 8 |
3 files changed, 27 insertions, 24 deletions
diff --git a/src/cmd/goyacc/Makefile b/src/cmd/goyacc/Makefile index 77ac918bc..54b8f3360 100644 --- a/src/cmd/goyacc/Makefile +++ b/src/cmd/goyacc/Makefile @@ -2,7 +2,7 @@ # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. -include ../../Make.$(GOARCH) +include ../../Make.inc TARG=goyacc GOFILES=\ diff --git a/src/cmd/goyacc/goyacc.go b/src/cmd/goyacc/goyacc.go index a5da5f0a1..c9fa6bfb9 100644 --- a/src/cmd/goyacc/goyacc.go +++ b/src/cmd/goyacc/goyacc.go @@ -299,17 +299,17 @@ type Resrv struct { } var resrv = []Resrv{ - Resrv{"binary", BINARY}, - Resrv{"left", LEFT}, - Resrv{"nonassoc", BINARY}, - Resrv{"prec", PREC}, - Resrv{"right", RIGHT}, - Resrv{"start", START}, - Resrv{"term", TERM}, - Resrv{"token", TERM}, - Resrv{"type", TYPEDEF}, - Resrv{"union", UNION}, - Resrv{"struct", UNION}, + {"binary", BINARY}, + {"left", LEFT}, + {"nonassoc", BINARY}, + {"prec", PREC}, + {"right", RIGHT}, + {"start", START}, + {"term", TERM}, + {"token", TERM}, + {"type", TYPEDEF}, + {"union", UNION}, + {"struct", UNION}, } var zznewstate = 0 @@ -1032,7 +1032,7 @@ func chfind(t int, s string) int { func cpyunion() { if !lflag { - fmt.Fprintf(ftable, "\n//line %v %v\n", lineno, infile) + fmt.Fprintf(ftable, "\n//line %v:%v\n", infile, lineno) } fmt.Fprintf(ftable, "type\tyySymType\tstruct") @@ -1075,7 +1075,7 @@ func cpycode() { lineno++ } if !lflag { - fmt.Fprintf(ftable, "\n//line %v %v\n", lineno, infile) + fmt.Fprintf(ftable, "\n//line %v:%v\n", infile, lineno) } for c != EOF { if c == '%' { @@ -1158,7 +1158,7 @@ func dumpprod(curprod []int, max int) { func cpyact(curprod []int, max int) { if !lflag { - fmt.Fprintf(fcode, "\n//line %v %v\n", lineno, infile) + fmt.Fprintf(fcode, "\n//line %v:%v\n", infile, lineno) } lno := lineno @@ -2066,6 +2066,7 @@ nextk: func output() { var c, u, v int + fmt.Fprintf(ftable, "\n//line yacctab:1\n") fmt.Fprintf(ftable, "var\tyyExca = []int {\n") noset := mkset() @@ -2825,8 +2826,10 @@ func others() { c = getrune(finput) } - parts := strings.Split(yaccpar, "yyrun()", 2) // copy yaccpar + fmt.Fprintf(ftable, "\n//line yaccpar:1\n") + + parts := strings.Split(yaccpar, "yyrun()", 2) fmt.Fprintf(ftable, "%v", parts[0]) ftable.Write(fcode.Bytes()) fmt.Fprintf(ftable, "%v", parts[1]) @@ -3035,7 +3038,7 @@ func open(s string) *bufio.Reader { return bufio.NewReader(fi) } -func create(s string, m int) *bufio.Writer { +func create(s string, m uint32) *bufio.Writer { fo, err := os.Open(s, os.O_WRONLY|os.O_CREAT|os.O_TRUNC, m) if err != nil { error("error opening %v: %v", s, err) @@ -3049,7 +3052,7 @@ func create(s string, m int) *bufio.Writer { // func error(s string, v ...interface{}) { nerrors++ - fmt.Fprintf(stderr, s, v) + fmt.Fprintf(stderr, s, v...) fmt.Fprintf(stderr, ": %v:%v\n", infile, lineno) if fatfl != 0 { summary() @@ -3136,7 +3139,7 @@ out: c = yyTok2[1] /* unknown char */ } if yyDebug >= 3 { - fmt.Printf("lex %.4x %s\n", uint(yychar), yyTokname(c)) + fmt.Printf("lex %U %s\n", uint(yychar), yyTokname(c)) } return c } @@ -3241,7 +3244,7 @@ yydefault: Errflag = 3 /* find a state where "error" is a legal shift action */ - for yyp >= len(YYS) { + for yyp >= 0 { yyn = yyPact[YYS[yyp].yys] + yyErrCode if yyn >= 0 && yyn < yyLast { yystate = yyAct[yyn] /* simulate a shift of "error" */ diff --git a/src/cmd/goyacc/units.y b/src/cmd/goyacc/units.y index bd5517e8b..a7d472fc6 100644 --- a/src/cmd/goyacc/units.y +++ b/src/cmd/goyacc/units.y @@ -215,7 +215,7 @@ expr0: type UnitsLex int -func (_ UnitsLex) Lex(yylval *yySymType) int { +func (UnitsLex) Lex(yylval *yySymType) int { var c, i int c = peekrune @@ -280,7 +280,7 @@ numb: return VAL } -func (_ UnitsLex) Error(s string) { +func (UnitsLex) Error(s string) { Error("syntax error, last name: %v", sym) } @@ -298,7 +298,7 @@ func main() { f, err := os.Open(file, os.O_RDONLY, 0) if err != nil { - fmt.Printf("error opening %v: %v\n", file, err) + fmt.Fprintf(os.Stderr, "error opening %v: %v\n", file, err) os.Exit(1) } fi = bufio.NewReader(f) @@ -390,7 +390,7 @@ func rdigit(c int) bool { func Error(s string, v ...interface{}) { fmt.Printf("%v: %v\n\t", lineno, line) - fmt.Printf(s, v) + fmt.Printf(s, v...) fmt.Printf("\n") nerrors++ |