summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Pike <r@golang.org>2009-12-14 06:34:51 +1100
committerRob Pike <r@golang.org>2009-12-14 06:34:51 +1100
commiteaf1a8becdf444c9724de52c68e095c20d6fe569 (patch)
treed3e1df9b447ac9e76a9dedda25f38db89d9f1a77
parent0dc94bcb39e72f0860a995c360994fcae94de1df (diff)
downloadgolang-eaf1a8becdf444c9724de52c68e095c20d6fe569.tar.gz
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
-rw-r--r--src/cmd/goyacc/goyacc.go21
-rw-r--r--src/cmd/goyacc/units.y83
2 files changed, 37 insertions, 67 deletions
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<Ndim; i++ {
@@ -460,8 +450,7 @@ mul(c,a,b *Node)
}
func
-div(c,a,b *Node)
-{
+div(c,a,b *Node) {
var i int;
for i=0; i<Ndim; i++ {
@@ -471,8 +460,7 @@ div(c,a,b *Node)
}
func
-xpn(c,a *Node, b int)
-{
+xpn(c,a *Node, b int) {
var i int;
*c = one;
@@ -488,8 +476,7 @@ xpn(c,a *Node, b int)
}
func
-specialcase(c,a,b *Node) bool
-{
+specialcase(c,a,b *Node) bool {
var i int;
var d, d1, d2 int8;
@@ -536,8 +523,7 @@ specialcase(c,a,b *Node) bool
}
func
-printdim(str string, d, n int) string
-{
+printdim(str string, d, n int) string {
var v *Var;
if n != 0 {
@@ -560,9 +546,8 @@ printdim(str string, d, n int) string
return str;
}
-func (n Node)
-String() string
-{
+func
+(n Node) String() string {
var str string;
var f, i, d int;
@@ -592,17 +577,15 @@ String() string
return str;
}
-func (v *Var)
-String() string
-{
+func
+(v *Var) String() string {
var str string;
str = fmt.Sprintf("%v %v", v.name, v.node);
return str;
}
func
-readline() bool
-{
+readline() bool {
s,err := fi.ReadString('\n');
if err != nil {
return true;
@@ -613,8 +596,7 @@ readline() bool
}
func
-getrune() int
-{
+getrune() int {
var c,n int;
if linep >= 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;
}