diff options
author | Russ Cox <rsc@golang.org> | 2010-09-28 10:35:02 -0400 |
---|---|---|
committer | Russ Cox <rsc@golang.org> | 2010-09-28 10:35:02 -0400 |
commit | ec13ed1fce4164477dece0c3486bebf93c0ad1e6 (patch) | |
tree | 00a5aadd78b641cdd9ae730056c42a513ea83608 | |
parent | b233ac8f18a668a2d91299ebc2996e7e2b623b29 (diff) | |
download | go-ec13ed1fce4164477dece0c3486bebf93c0ad1e6.tar.gz go-ec13ed1fce4164477dece0c3486bebf93c0ad1e6.zip |
gc: insert semicolon at EOF if needed
R=ken2, gri
CC=golang-dev
https://golang.org/cl/2208053
-rw-r--r-- | src/cmd/gc/lex.c | 9 | ||||
-rw-r--r-- | test/eof.go | 9 |
2 files changed, 11 insertions, 7 deletions
diff --git a/src/cmd/gc/lex.c b/src/cmd/gc/lex.c index b46aa2ae08..8289648ba9 100644 --- a/src/cmd/gc/lex.c +++ b/src/cmd/gc/lex.c @@ -1247,13 +1247,8 @@ yylex(void) lx = _yylex(); if(curio.nlsemi && lx == EOF) { - // if the nlsemi bit is set, we'd be willing to - // insert a ; if we saw a \n, but we didn't. - // that means the final \n is missing. - // complain here, because we can give a - // good message. the syntax error we'd get - // otherwise is inscrutable. - yyerror("missing newline at end of file"); + // Treat EOF as "end of line" for the purposes + // of inserting a semicolon. lx = ';'; } diff --git a/test/eof.go b/test/eof.go new file mode 100644 index 0000000000..81f9fd028f --- /dev/null +++ b/test/eof.go @@ -0,0 +1,9 @@ +// $G $D/$F.go + +// Copyright 2010 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// No newline at the end of this file. + +package main
\ No newline at end of file |