]> Cypherpunks repositories - gostls13.git/commitdiff
go/parser: imaginary constants and ! may start an expression
authorRobert Griesemer <gri@golang.org>
Thu, 16 Feb 2012 22:13:31 +0000 (14:13 -0800)
committerRobert Griesemer <gri@golang.org>
Thu, 16 Feb 2012 22:13:31 +0000 (14:13 -0800)
Complete list of tokens that can start a top-level expression.

R=rsc
CC=golang-dev
https://golang.org/cl/5671074

src/pkg/go/parser/parser.go

index 65eea039ea31acf10d8acc7fcbc639590a78bb07..c1e6190448641e9c50822d66b6c6604597b0a478 100644 (file)
@@ -1861,10 +1861,10 @@ func (p *parser) parseStmt() (s ast.Stmt) {
        case token.CONST, token.TYPE, token.VAR:
                s = &ast.DeclStmt{Decl: p.parseDecl()}
        case
-               // tokens that may start a top-level expression
-               token.IDENT, token.INT, token.FLOAT, token.CHAR, token.STRING, token.FUNC, token.LPAREN, // operand
-               token.LBRACK, token.STRUCT, // composite type
-               token.MUL, token.AND, token.ARROW, token.ADD, token.SUB, token.XOR: // unary operators
+               // tokens that may start an expression
+               token.IDENT, token.INT, token.FLOAT, token.IMAG, token.CHAR, token.STRING, token.FUNC, token.LPAREN, // operands
+               token.LBRACK, token.STRUCT, // composite types
+               token.ADD, token.SUB, token.MUL, token.AND, token.XOR, token.ARROW, token.NOT: // unary operators
                s, _ = p.parseSimpleStmt(labelOk)
                // because of the required look-ahead, labeled statements are
                // parsed by parseSimpleStmt - don't expect a semicolon after