- Implemented simple rule for optional semicolons:

Semicolons are terminators for statements as in C,
  but if followed by a "}" they are not required.
  This is easy to understand and produces the desired
  result for statements.
- Updated todo.txt.

SVN=113198
This commit is contained in:
Robert Griesemer 2008-03-19 15:45:07 -07:00
parent e4ca60eca7
commit d2490e7419
6 changed files with 156 additions and 3 deletions

35
tests/char_lit.go Normal file
View file

@ -0,0 +1,35 @@
// $G $F.go && $L $F.$A &&./$A.out
// Copyright 2009 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package main
func main() {
[ ' ',
'a',
// need to fix Coco/R scanner to read Unicode.
// 'ä',
//'本',
'\a',
'\b',
'\f',
'\n',
'\r',
'\t',
'\v',
'\\',
'\'',
'\"',
'\000',
'\123',
'\x00',
'\xca',
'\xFE',
'\u0123',
'\ubabe',
'\U0123ABCD',
'\Ucafebabe'
]
}

70
tests/float_lit.go Normal file
View file

@ -0,0 +1,70 @@
// $G $F.go && $L $F.$A && ./$A.out
// Copyright 2009 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package main
func main() {
[ 0.,
+10.,
-210.,
.0,
+.01,
-.012,
0.0,
+10.01,
-210.012,
0E+1,
+10e2,
-210e3,
0E-1,
+0e23,
-0e345,
0E1,
+10e23,
-210e345,
0.E1,
+10.e+2,
-210.e-3,
.0E1,
+.01e2,
-.012e3,
0.0E1,
+10.01e2,
-210.012e3,
0.E+12,
+10.e23,
-210.e34,
.0E-12,
+.01e23,
-.012e34,
0.0E12,
+10.01e23,
-210.012e34,
0.E123,
+10.e+234,
-210.e-345,
.0E123,
+.01e234,
-.012e345,
0.0E123,
+10.01e234,
-210.012e345
]
}

View file

@ -58,9 +58,9 @@ func (m *HashMap) Clear() {
var i uint32 = m.capacity() - 1;
for i > 0 {
m.map_[i].key = nil;
i = i - 1;
i = i - 1
}
m.occupancy_ = 0;
m.occupancy_ = 0
}

19
tests/int_lit.go Normal file
View file

@ -0,0 +1,19 @@
// $G $F.go && $L $F.$A && ./$A.out
// Copyright 2009 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package main
func main() {
[ 0,
123,
0123,
0000,
0x0,
0x123,
0X0,
0X123
];
}

29
tests/string_lit.go Normal file
View file

@ -0,0 +1,29 @@
// $G $F.go && $L $F.$A && ./$A.out
// Copyright 2009 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package main
func main() {
[ "",
" ",
"'`",
"a",
//"ä",
//"本",
"\a\b\f\n\r\t\v\\\'\"",
"\000\123\x00\xca\xFE\u0123\ubabe\U0123ABCD\Ucafebabe",
``,
` `,
`'"`,
`a`,
//`ä`,
//`本`,
`\a\b\f\n\r\t\v\\\'\"`,
`\000\123\x00\xca\xFE\u0123\ubabe\U0123ABCD\Ucafebabe`,
`\x\u\U\`
]
}

View file

@ -69,7 +69,7 @@ func control_structs() {
foo: // a label
switch {
case i < y:
fallthrough
fallthrough;
case i < j:
case i == 0, i == 1, i == j:
i++; i++;