Commit b2e0c34c authored by Russ Cox's avatar Russ Cox

cmd/gc: remove reference to ? and @ symbols in error message

Those symbols are only allowed during imports;
the parser may expect them but saying that doesn't help users.

Fixes #3434.

R=ken2
CC=golang-dev
https://golang.org/cl/7277045
parent 2eafbb88
......@@ -152,13 +152,22 @@ yyerror(char *fmt, ...)
return;
lastsyntax = lexlineno;
if(strstr(fmt, "{ or {")) {
if(strstr(fmt, "{ or {") || strstr(fmt, " or ?") || strstr(fmt, " or @")) {
// The grammar has { and LBRACE but both show up as {.
// Rewrite syntax error referring to "{ or {" to say just "{".
strecpy(buf, buf+sizeof buf, fmt);
p = strstr(buf, "{ or {");
if(p)
memmove(p+1, p+6, strlen(p+6)+1);
// The grammar has ? and @ but only for reading imports.
// Silence them in ordinary errors.
p = strstr(buf, " or ?");
if(p)
memmove(p, p+5, strlen(p+5)+1);
p = strstr(buf, " or @");
if(p)
memmove(p, p+5, strlen(p+5)+1);
fmt = buf;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment