]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/yacc: use %q to print strings in Toknames
authorRob Pike <r@golang.org>
Mon, 10 Aug 2015 05:17:18 +0000 (15:17 +1000)
committerRob Pike <r@golang.org>
Tue, 11 Aug 2015 00:26:05 +0000 (00:26 +0000)
Fixes #12086

Belongs in 1.5

There remains a question of why the Statenames table's elements
are not printed. What purpose does that serve?

Change-Id: I83fd57b81d5e5065c3397a66ed457fc0d1c041bd
Reviewed-on: https://go-review.googlesource.com/13462
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Andrew Gerrand <adg@golang.org>
Reviewed-by: Russ Cox <rsc@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
src/cmd/yacc/yacc.go

index 53c0fab17451556cea79caf3100ade24c65d2bb1..a63c218b136f90c722d31679d1d5384fc6c9093b 100644 (file)
@@ -699,18 +699,20 @@ outer:
                }
        }
 
-       // put out names of token names
+       // put out names of tokens
        ftable.WriteRune('\n')
        fmt.Fprintf(ftable, "var %sToknames = [...]string{\n", prefix)
        for i := 1; i <= ntokens; i++ {
-               fmt.Fprintf(ftable, "\t\"%v\",\n", tokset[i].name)
+               fmt.Fprintf(ftable, "\t%q,\n", tokset[i].name)
        }
        fmt.Fprintf(ftable, "}\n")
 
-       // put out names of state names
+       // put out names of states.
+       // commented out to avoid a huge table just for debugging.
+       // re-enable to have the names in the binary.
        fmt.Fprintf(ftable, "var %sStatenames = [...]string{", prefix)
        //      for i:=TOKSTART; i<=ntokens; i++ {
-       //              fmt.Fprintf(ftable, "\t\"%v\",\n", tokset[i].name);
+       //              fmt.Fprintf(ftable, "\t%q,\n", tokset[i].name);
        //      }
        fmt.Fprintf(ftable, "}\n")