1
0
mirror of https://github.com/golang/go synced 2024-11-21 21:14:47 -07:00

go/printer: make tests follow syntactic restrictions

R=rsc
CC=golang-dev
https://golang.org/cl/4439087
This commit is contained in:
Robert Griesemer 2011-05-02 10:05:43 -07:00
parent 16381b145e
commit 3599e3fc12
3 changed files with 171 additions and 114 deletions

View File

@ -94,30 +94,49 @@ func _() {
_ = under_bar - 1 _ = under_bar - 1
_ = Open(dpath+"/file", O_WRONLY|O_CREAT, 0666) _ = Open(dpath+"/file", O_WRONLY|O_CREAT, 0666)
_ = int(c0&_Mask4)<<18 | int(c1&_Maskx)<<12 | int(c2&_Maskx)<<6 | int(c3&_Maskx) _ = int(c0&_Mask4)<<18 | int(c1&_Maskx)<<12 | int(c2&_Maskx)<<6 | int(c3&_Maskx)
// the parser does not restrict expressions that may appear as statements
true
42
"foo"
x
(x)
a + b
a + b + c
a + (b * c)
a + (b / c)
1 + a
a + 1
s[a]
x << 1
(s[0] << 1) & 0xf
"foo" + s
x == y
x < y || z > 42
} }
func _() { func _() {
a + b _ = a + b
a + b + c _ = a + b + c
a + b*c _ = a + b*c
a + (b * c) _ = a + (b * c)
(a + b) * c _ = (a + b) * c
a + (b * c * d) _ = a + (b * c * d)
a + (b*c + d) _ = a + (b*c + d)
1 << x _ = 1 << x
-1 << x _ = -1 << x
1<<x - 1 _ = 1<<x - 1
-1<<x - 1 _ = -1<<x - 1
f(a + b) _ = f(a + b)
f(a + b + c) _ = f(a + b + c)
f(a + b*c) _ = f(a + b*c)
f(a + (b * c)) _ = f(a + (b * c))
f(1<<x-1, 1<<x-2) _ = f(1<<x-1, 1<<x-2)
1<<d.logWindowSize - 1 _ = 1<<d.logWindowSize - 1
buf = make(x, 2*cap(b.buf)+n) buf = make(x, 2*cap(b.buf)+n)
@ -131,7 +150,7 @@ func _() {
signed += ' ' * 8 signed += ' ' * 8
tw.octal(header[148:155], chksum) tw.octal(header[148:155], chksum)
x > 0 && i >= 0 _ = x > 0 && i >= 0
x1, x0 := x>>w2, x&m2 x1, x0 := x>>w2, x&m2
z0 = t1<<w2 + t0 z0 = t1<<w2 + t0
@ -141,31 +160,31 @@ func _() {
x1 = (x1 << z) | (x0 >> (uint(w) - z)) x1 = (x1 << z) | (x0 >> (uint(w) - z))
x1 = x1<<z | x0>>(uint(w)-z) x1 = x1<<z | x0>>(uint(w)-z)
buf[0 : len(buf)+1] _ = buf[0 : len(buf)+1]
buf[0 : n+1] _ = buf[0 : n+1]
a, b = b, a a, b = b, a
a = b + c a = b + c
a = b*c + d a = b*c + d
a*b + c _ = a*b + c
a - b - c _ = a - b - c
a - (b - c) _ = a - (b - c)
a - b*c _ = a - b*c
a - (b * c) _ = a - (b * c)
a * b / c _ = a * b / c
a / *b _ = a / *b
x[a|^b] _ = x[a|^b]
x[a / *b] _ = x[a / *b]
a & ^b _ = a & ^b
a + +b _ = a + +b
a - -b _ = a - -b
x[a*-b] _ = x[a*-b]
x[a + +b] _ = x[a + +b]
x ^ y ^ z _ = x ^ y ^ z
b[a>>24] ^ b[(a>>16)&0xFF] ^ b[(a>>8)&0xFF] ^ b[a&0xFF] _ = b[a>>24] ^ b[(a>>16)&0xFF] ^ b[(a>>8)&0xFF] ^ b[a&0xFF]
len(longVariableName) * 2 _ = len(longVariableName) * 2
token(matchType + xlength<<lengthShift + xoffset) _ = token(matchType + xlength<<lengthShift + xoffset)
} }

View File

@ -94,30 +94,49 @@ func _() {
_ = under_bar-1 _ = under_bar-1
_ = Open(dpath + "/file", O_WRONLY | O_CREAT, 0666) _ = Open(dpath + "/file", O_WRONLY | O_CREAT, 0666)
_ = int(c0&_Mask4)<<18 | int(c1&_Maskx)<<12 | int(c2&_Maskx)<<6 | int(c3&_Maskx) _ = int(c0&_Mask4)<<18 | int(c1&_Maskx)<<12 | int(c2&_Maskx)<<6 | int(c3&_Maskx)
// the parser does not restrict expressions that may appear as statements
true
42
"foo"
x
(x)
a+b
a+b+c
a+(b*c)
a+(b/c)
1+a
a+1
s[a]
x<<1
(s[0]<<1)&0xf
"foo"+s
x == y
x < y || z > 42
} }
func _() { func _() {
a+b _ = a+b
a+b+c _ = a+b+c
a+b*c _ = a+b*c
a+(b*c) _ = a+(b*c)
(a+b)*c _ = (a+b)*c
a+(b*c*d) _ = a+(b*c*d)
a+(b*c+d) _ = a+(b*c+d)
1<<x _ = 1<<x
-1<<x _ = -1<<x
1<<x-1 _ = 1<<x-1
-1<<x-1 _ = -1<<x-1
f(a+b) _ = f(a+b)
f(a+b+c) _ = f(a+b+c)
f(a+b*c) _ = f(a+b*c)
f(a+(b*c)) _ = f(a+(b*c))
f(1<<x-1, 1<<x-2) _ = f(1<<x-1, 1<<x-2)
1<<d.logWindowSize-1 _ = 1<<d.logWindowSize-1
buf = make(x, 2*cap(b.buf) + n) buf = make(x, 2*cap(b.buf) + n)
@ -131,7 +150,7 @@ func _() {
signed += ' '*8 signed += ' '*8
tw.octal(header[148:155], chksum) tw.octal(header[148:155], chksum)
x > 0 && i >= 0 _ = x > 0 && i >= 0
x1, x0 := x>>w2, x&m2 x1, x0 := x>>w2, x&m2
z0 = t1<<w2+t0 z0 = t1<<w2+t0
@ -141,31 +160,31 @@ func _() {
x1 = (x1<<z)|(x0>>(uint(w)-z)) x1 = (x1<<z)|(x0>>(uint(w)-z))
x1 = x1<<z | x0>>(uint(w)-z) x1 = x1<<z | x0>>(uint(w)-z)
buf[0:len(buf)+1] _ = buf[0:len(buf)+1]
buf[0:n+1] _ = buf[0:n+1]
a,b = b,a a,b = b,a
a = b+c a = b+c
a = b*c+d a = b*c+d
a*b+c _ = a*b+c
a-b-c _ = a-b-c
a-(b-c) _ = a-(b-c)
a-b*c _ = a-b*c
a-(b*c) _ = a-(b*c)
a*b/c _ = a*b/c
a/ *b _ = a/ *b
x[a|^b] _ = x[a|^b]
x[a/ *b] _ = x[a/ *b]
a& ^b _ = a& ^b
a+ +b _ = a+ +b
a- -b _ = a- -b
x[a*-b] _ = x[a*-b]
x[a+ +b] _ = x[a+ +b]
x^y^z _ = x^y^z
b[a>>24] ^ b[(a>>16)&0xFF] ^ b[(a>>8)&0xFF] ^ b[a&0xFF] _ = b[a>>24] ^ b[(a>>16)&0xFF] ^ b[(a>>8)&0xFF] ^ b[a&0xFF]
len(longVariableName)*2 _ = len(longVariableName)*2
token(matchType + xlength<<lengthShift + xoffset) _ = token(matchType + xlength<<lengthShift + xoffset)
} }

View File

@ -94,30 +94,49 @@ func _() {
_ = under_bar - 1 _ = under_bar - 1
_ = Open(dpath+"/file", O_WRONLY|O_CREAT, 0666) _ = Open(dpath+"/file", O_WRONLY|O_CREAT, 0666)
_ = int(c0&_Mask4)<<18 | int(c1&_Maskx)<<12 | int(c2&_Maskx)<<6 | int(c3&_Maskx) _ = int(c0&_Mask4)<<18 | int(c1&_Maskx)<<12 | int(c2&_Maskx)<<6 | int(c3&_Maskx)
// the parser does not restrict expressions that may appear as statements
true
42
"foo"
x
(x)
a + b
a + b + c
a + (b * c)
a + (b / c)
1 + a
a + 1
s[a]
x << 1
(s[0] << 1) & 0xf
"foo" + s
x == y
x < y || z > 42
} }
func _() { func _() {
a + b _ = a + b
a + b + c _ = a + b + c
a + b*c _ = a + b*c
a + (b * c) _ = a + (b * c)
(a + b) * c _ = (a + b) * c
a + (b * c * d) _ = a + (b * c * d)
a + (b*c + d) _ = a + (b*c + d)
1 << x _ = 1 << x
-1 << x _ = -1 << x
1<<x - 1 _ = 1<<x - 1
-1<<x - 1 _ = -1<<x - 1
f(a + b) _ = f(a + b)
f(a + b + c) _ = f(a + b + c)
f(a + b*c) _ = f(a + b*c)
f(a + (b * c)) _ = f(a + (b * c))
f(1<<x-1, 1<<x-2) _ = f(1<<x-1, 1<<x-2)
1<<d.logWindowSize - 1 _ = 1<<d.logWindowSize - 1
buf = make(x, 2*cap(b.buf)+n) buf = make(x, 2*cap(b.buf)+n)
@ -131,7 +150,7 @@ func _() {
signed += ' ' * 8 signed += ' ' * 8
tw.octal(header[148:155], chksum) tw.octal(header[148:155], chksum)
x > 0 && i >= 0 _ = x > 0 && i >= 0
x1, x0 := x>>w2, x&m2 x1, x0 := x>>w2, x&m2
z0 = t1<<w2 + t0 z0 = t1<<w2 + t0
@ -141,31 +160,31 @@ func _() {
x1 = (x1 << z) | (x0 >> (uint(w) - z)) x1 = (x1 << z) | (x0 >> (uint(w) - z))
x1 = x1<<z | x0>>(uint(w)-z) x1 = x1<<z | x0>>(uint(w)-z)
buf[0 : len(buf)+1] _ = buf[0 : len(buf)+1]
buf[0 : n+1] _ = buf[0 : n+1]
a, b = b, a a, b = b, a
a = b + c a = b + c
a = b*c + d a = b*c + d
a*b + c _ = a*b + c
a - b - c _ = a - b - c
a - (b - c) _ = a - (b - c)
a - b*c _ = a - b*c
a - (b * c) _ = a - (b * c)
a * b / c _ = a * b / c
a / *b _ = a / *b
x[a|^b] _ = x[a|^b]
x[a / *b] _ = x[a / *b]
a & ^b _ = a & ^b
a + +b _ = a + +b
a - -b _ = a - -b
x[a*-b] _ = x[a*-b]
x[a + +b] _ = x[a + +b]
x ^ y ^ z _ = x ^ y ^ z
b[a>>24] ^ b[(a>>16)&0xFF] ^ b[(a>>8)&0xFF] ^ b[a&0xFF] _ = b[a>>24] ^ b[(a>>16)&0xFF] ^ b[(a>>8)&0xFF] ^ b[a&0xFF]
len(longVariableName) * 2 _ = len(longVariableName) * 2
token(matchType + xlength<<lengthShift + xoffset) _ = token(matchType + xlength<<lengthShift + xoffset)
} }