diff options
Diffstat (limited to 'src/cmd/compile/internal/syntax/parser.go')
-rw-r--r-- | src/cmd/compile/internal/syntax/parser.go | 50 |
1 files changed, 26 insertions, 24 deletions
diff --git a/src/cmd/compile/internal/syntax/parser.go b/src/cmd/compile/internal/syntax/parser.go index 8ae2ebbe76..d86fe1b72e 100644 --- a/src/cmd/compile/internal/syntax/parser.go +++ b/src/cmd/compile/internal/syntax/parser.go @@ -190,7 +190,7 @@ func (p *parser) got(tok token) bool { func (p *parser) want(tok token) { if !p.got(tok) { - p.syntaxError("expecting " + tokstring(tok)) + p.syntaxError("expected " + tokstring(tok)) p.advance() } } @@ -200,7 +200,7 @@ func (p *parser) want(tok token) { func (p *parser) gotAssign() bool { switch p.tok { case _Define: - p.syntaxError("expecting =") + p.syntaxError("expected =") fallthrough case _Assign: p.next() @@ -246,7 +246,7 @@ func (p *parser) syntaxErrorAt(pos Pos, msg string) { // nothing to do case strings.HasPrefix(msg, "in "), strings.HasPrefix(msg, "at "), strings.HasPrefix(msg, "after "): msg = " " + msg - case strings.HasPrefix(msg, "expecting "): + case strings.HasPrefix(msg, "expected "): msg = ", " + msg default: // plain error - we don't care about current token @@ -272,6 +272,8 @@ func (p *parser) syntaxErrorAt(pos Pos, msg string) { tok = tokstring(p.tok) } + // TODO(gri) This may print "unexpected X, expected Y". + // Consider "got X, expected Y" in this case. p.errorAt(pos, "syntax error: unexpected "+tok+msg) } @@ -774,7 +776,7 @@ func (p *parser) funcDeclOrNil() *FuncDecl { } if p.tok != _Name { - p.syntaxError("expecting name or (") + p.syntaxError("expected name or (") p.advance(_Lbrace, _Semi) return nil } @@ -904,7 +906,7 @@ func (p *parser) unaryExpr() Expr { if dir == RecvOnly { // t is type <-chan E but <-<-chan E is not permitted // (report same error as for "type _ <-<-chan E") - p.syntaxError("unexpected <-, expecting chan") + p.syntaxError("unexpected <-, expected chan") // already progressed, no need to advance } c.Dir = RecvOnly @@ -913,7 +915,7 @@ func (p *parser) unaryExpr() Expr { if dir == SendOnly { // channel dir is <- but channel element E is not a channel // (report same error as for "type _ <-chan<-E") - p.syntaxError(fmt.Sprintf("unexpected %s, expecting chan", String(t))) + p.syntaxError(fmt.Sprintf("unexpected %s, expected chan", String(t))) // already progressed, no need to advance } return x @@ -1038,7 +1040,7 @@ func (p *parser) operand(keep_parens bool) Expr { default: x := p.badExpr() - p.syntaxError("expecting expression") + p.syntaxError("expected expression") p.advance(_Rparen, _Rbrack, _Rbrace) return x } @@ -1109,7 +1111,7 @@ loop: p.want(_Rparen) default: - p.syntaxError("expecting name or (") + p.syntaxError("expected name or (") p.advance(_Semi, _Rparen) } @@ -1121,7 +1123,7 @@ loop: var comma bool if p.tok == _Rbrack { // invalid empty instance, slice or index expression; accept but complain - p.syntaxError("expecting operand") + p.syntaxError("expected operand") i = p.badExpr() } else { i, comma = p.typeList() @@ -1141,7 +1143,7 @@ loop: // x[i:... // For better error message, don't simply use p.want(_Colon) here (issue #47704). if !p.got(_Colon) { - p.syntaxError("expecting comma, : or ]") + p.syntaxError("expected comma, : or ]") p.advance(_Comma, _Colon, _Rbrack) } p.xnest++ @@ -1293,7 +1295,7 @@ func (p *parser) type_() Expr { typ := p.typeOrNil() if typ == nil { typ = p.badExpr() - p.syntaxError("expecting type") + p.syntaxError("expected type") p.advance(_Comma, _Colon, _Semi, _Rparen, _Rbrack, _Rbrace) } @@ -1405,7 +1407,7 @@ func (p *parser) typeInstance(typ Expr) Expr { x.pos = pos x.X = typ if p.tok == _Rbrack { - p.syntaxError("expecting type") + p.syntaxError("expected type argument list") x.Index = p.badExpr() } else { x.Index, _ = p.typeList() @@ -1460,7 +1462,7 @@ func (p *parser) arrayType(pos Pos, len Expr) Expr { // Trailing commas are accepted in type parameter // lists but not in array type declarations. // Accept for better error handling but complain. - p.syntaxError("unexpected comma; expecting ]") + p.syntaxError("unexpected comma; expected ]") p.next() } p.want(_Rbrack) @@ -1660,7 +1662,7 @@ func (p *parser) fieldDecl(styp *StructType) { p.addField(styp, pos, nil, typ, tag) default: - p.syntaxError("expecting field name or embedded type") + p.syntaxError("expected field name or embedded type") p.advance(_Semi, _Rbrace) } } @@ -1850,7 +1852,7 @@ func (p *parser) embeddedTerm() Expr { t := p.typeOrNil() if t == nil { t = p.badExpr() - p.syntaxError("expecting ~ term or type") + p.syntaxError("expected ~ term or type") p.advance(_Operator, _Semi, _Rparen, _Rbrack, _Rbrace) } @@ -1949,7 +1951,7 @@ func (p *parser) paramDeclOrNil(name *Name, follow token) *Field { return f } - p.syntaxError("expecting " + tokstring(follow)) + p.syntaxError("expected " + tokstring(follow)) p.advance(_Comma, follow) return nil } @@ -2155,7 +2157,7 @@ func (p *parser) simpleStmt(lhs Expr, keyword token) SimpleStmt { return p.newAssignStmt(pos, op, lhs, rhs) default: - p.syntaxError("expecting := or = or comma") + p.syntaxError("expected := or = or comma") p.advance(_Semi, _Rbrace) // make the best of what we have if x, ok := lhs.(*ListExpr); ok { @@ -2230,7 +2232,7 @@ func (p *parser) blockStmt(context string) *BlockStmt { // people coming from C may forget that braces are mandatory in Go if !p.got(_Lbrace) { - p.syntaxError("expecting { after " + context) + p.syntaxError("expected { after " + context) p.advance(_Name, _Rbrace) s.Rbrace = p.pos() // in case we found "}" if p.got(_Rbrace) { @@ -2321,7 +2323,7 @@ func (p *parser) header(keyword token) (init SimpleStmt, cond Expr, post SimpleS if keyword == _For { if p.tok != _Semi { if p.tok == _Lbrace { - p.syntaxError("expecting for loop condition") + p.syntaxError("expected for loop condition") goto done } condStmt = p.simpleStmt(nil, 0 /* range not permitted */) @@ -2347,7 +2349,7 @@ done: case nil: if keyword == _If && semi.pos.IsKnown() { if semi.lit != "semicolon" { - p.syntaxErrorAt(semi.pos, fmt.Sprintf("unexpected %s, expecting { after if clause", semi.lit)) + p.syntaxErrorAt(semi.pos, fmt.Sprintf("unexpected %s, expected { after if clause", semi.lit)) } else { p.syntaxErrorAt(semi.pos, "missing condition in if statement") } @@ -2466,7 +2468,7 @@ func (p *parser) caseClause() *CaseClause { p.next() default: - p.syntaxError("expecting case or default or }") + p.syntaxError("expected case or default or }") p.advance(_Colon, _Case, _Default, _Rbrace) } @@ -2506,7 +2508,7 @@ func (p *parser) commClause() *CommClause { p.next() default: - p.syntaxError("expecting case or default or }") + p.syntaxError("expected case or default or }") p.advance(_Colon, _Case, _Default, _Rbrace) } @@ -2683,7 +2685,7 @@ func (p *parser) name() *Name { } n := NewName(p.pos(), "_") - p.syntaxError("expecting name") + p.syntaxError("expected name") p.advance() return n } @@ -2721,7 +2723,7 @@ func (p *parser) qualifiedName(name *Name) Expr { x = p.name() default: x = NewName(p.pos(), "_") - p.syntaxError("expecting name") + p.syntaxError("expected name") p.advance(_Dot, _Semi, _Rbrace) } |