From eaf1a8becdf444c9724de52c68e095c20d6fe569 Mon Sep 17 00:00:00 2001 From: Rob Pike Date: Mon, 14 Dec 2009 06:34:51 +1100 Subject: Update goyacc to new syntax, still with semicolons. Update units.y too. Fixes issue 417. R=rsc CC=golang-dev http://codereview.appspot.com/176063 --- src/cmd/goyacc/goyacc.go | 21 ++++-------- src/cmd/goyacc/units.y | 83 +++++++++++++++++------------------------------- 2 files changed, 37 insertions(+), 67 deletions(-) (limited to 'src') diff --git a/src/cmd/goyacc/goyacc.go b/src/cmd/goyacc/goyacc.go index 719c6de51..cdaa7f1cd 100644 --- a/src/cmd/goyacc/goyacc.go +++ b/src/cmd/goyacc/goyacc.go @@ -2195,7 +2195,7 @@ func output() { fmt.Fprintf(ftable, "const\tYYNPROD\t= %v\n", nprod); fmt.Fprintf(ftable, "const\tYYPRIVATE\t= %v\n", PRIVATE); fmt.Fprintf(ftable, "var\tYYTOKENNAMES []string\n"); - fmt.Fprintf(ftable, "var\tYYSTATES\n[]string\n"); + fmt.Fprintf(ftable, "var\tYYSTATES []string\n"); } // @@ -2869,7 +2869,7 @@ func others() { putrune(ftable, '\n') } } - fmt.Fprintf(ftable, "%4d\n };\n", 0); + fmt.Fprintf(ftable, "%4d,\n };\n", 0); // copy parser text c = getrune(finput); @@ -3123,10 +3123,7 @@ func exit(status int) { os.Exit(status); } -var yaccpar = -// from here to the end of the file is -// a single string containing the old yaccpar file -` +var yaccpar = ` /* parser for yacc output */ var Nerrs = 0 /* number of errors */ @@ -3135,8 +3132,7 @@ var Debug = 0 const YYFLAG = -1000 func -Tokname(yyc int) string -{ +Tokname(yyc int) string { if yyc > 0 && yyc <= len(Toknames) { if Toknames[yyc-1] != "" { return Toknames[yyc-1]; @@ -3146,8 +3142,7 @@ Tokname(yyc int) string } func -Statname(yys int) string -{ +Statname(yys int) string { if yys >= 0 && yys < len(Statenames) { if Statenames[yys] != "" { return Statenames[yys]; @@ -3157,8 +3152,7 @@ Statname(yys int) string } func -lex1() int -{ +lex1() int { var yychar int; var c int; @@ -3197,8 +3191,7 @@ out: } func -Parse() int -{ +Parse() int { var yyj, yystate, yyn, yyg, yyxi, yyp int; var yychar int; var yypt, yynt int; diff --git a/src/cmd/goyacc/units.y b/src/cmd/goyacc/units.y index 44d1cc758..29446d15b 100644 --- a/src/cmd/goyacc/units.y +++ b/src/cmd/goyacc/units.y @@ -40,16 +40,14 @@ const Maxe = 695; // log of largest number ) -type Node -struct -{ +type +Node struct { vval float64; dim [Ndim]int8; } -type Var -struct -{ +type +Var struct { name string; node Node; } @@ -220,8 +218,7 @@ expr0: %% func -Lex() int -{ +Lex() int { var c, i int; c = peekrune; @@ -287,8 +284,7 @@ numb: } func -main() -{ +main() { var file string; flag.BoolVar(&vflag, "v", false, "verbose"); @@ -369,8 +365,7 @@ main() * meaning. rest are usable as names */ func -ralpha(c int) bool -{ +ralpha(c int) bool { switch c { case 0, '+', '-', '*', '/', '[', ']', '(', ')', '^', ':', '?', ' ', '\t', '.', '|', '#', @@ -384,8 +379,7 @@ ralpha(c int) bool * number forming character */ func -rdigit(c int) bool -{ +rdigit(c int) bool { switch c { case '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '.', 'e', '+', '-': @@ -395,8 +389,7 @@ rdigit(c int) bool } func -Error(s string, v ...) -{ +Error(s string, v ...) { /* * hack to intercept message from yaccpar @@ -417,8 +410,7 @@ Error(s string, v ...) } func -add(c,a,b *Node) -{ +add(c,a,b *Node) { var i int; var d int8; @@ -433,8 +425,7 @@ add(c,a,b *Node) } func -sub(c,a,b *Node) -{ +sub(c,a,b *Node) { var i int; var d int8; @@ -449,8 +440,7 @@ sub(c,a,b *Node) } func -mul(c,a,b *Node) -{ +mul(c,a,b *Node) { var i int; for i=0; i= len(line) { @@ -631,8 +613,7 @@ getrune() int var symmap = make(map[string]*Var); // symbol table func -lookup(f int) *Var -{ +lookup(f int) *Var { var p float64; var w *Var; @@ -663,8 +644,8 @@ lookup(f int) *Var return v; } -type Prefix -struct +type +Prefix struct { vval float64; name string; @@ -693,12 +674,11 @@ var prefix = []Prefix { // prefix table Prefix { 1e15, "peta" }, Prefix { 1e18, "exa" }, Prefix { 1e21, "zetta" }, - Prefix { 1e24, "yotta" } + Prefix { 1e24, "yotta" }, } func -pname() float64 -{ +pname() float64 { var i, j, n int; var s string; @@ -730,8 +710,7 @@ pname() float64 // careful multiplication // exponents (log) are checked before multiply func -fmul(a, b float64) float64 -{ +fmul(a, b float64) float64 { var l float64; if b <= 0 { @@ -764,8 +743,7 @@ fmul(a, b float64) float64 // careful division // exponents (log) are checked before divide func -fdiv(a, b float64) float64 -{ +fdiv(a, b float64) float64 { var l float64; if b <= 0 { @@ -797,7 +775,6 @@ fdiv(a, b float64) float64 } func -fadd(a, b float64) float64 -{ +fadd(a, b float64) float64 { return a + b; } -- cgit v1.2.3