use separate lex buf for better errors:

package main
func main() { func(){}() + + }

x.go:2: syntax error near _f001

becomes

x.go:2: syntax error near func

R=ken
OCL=27047
CL=27047
diff --git a/src/cmd/gc/go.h b/src/cmd/gc/go.h
index 2d8f092..b3f8a50b 100644
--- a/src/cmd/gc/go.h
+++ b/src/cmd/gc/go.h
@@ -533,6 +533,7 @@
 EXTERN	Biobuf*	bout;
 EXTERN	int	nerrors;
 EXTERN	char	namebuf[NSYMB];
+EXTERN	char	lexbuf[NSYMB];
 EXTERN	char	debug[256];
 EXTERN	Sym*	hash[NHASH];
 EXTERN	Sym*	dclstack;