From f43d2b7fa89e148b1570551d5a27e0c155a03cb2 Mon Sep 17 00:00:00 2001 From: Robert Griesemer Date: Thu, 16 Feb 2012 14:13:31 -0800 Subject: [PATCH] go/parser: imaginary constants and ! may start an expression 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 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/pkg/go/parser/parser.go b/src/pkg/go/parser/parser.go index 65eea039ea..c1e6190448 100644 --- a/src/pkg/go/parser/parser.go +++ b/src/pkg/go/parser/parser.go @@ -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