From aaaa1fc69b33e39284df07d09047494d824395f3 Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Tue, 15 Sep 2009 17:29:08 -0700 Subject: [PATCH] make 6g match spec: no semicolon allowd after package clause. semicolon allowed after import statement. no doubled semicolons allowed R=ken OCL=34674 CL=34674 --- src/cmd/gc/go.y | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/cmd/gc/go.y b/src/cmd/gc/go.y index ea9cd3aed5..7b1f772242 100644 --- a/src/cmd/gc/go.y +++ b/src/cmd/gc/go.y @@ -113,6 +113,9 @@ %left '{' +%left NotSemi +%left ';' + %% file: loadsys @@ -154,9 +157,9 @@ imports: | imports import import: - LIMPORT import_stmt -| LIMPORT '(' import_stmt_list osemi ')' -| LIMPORT '(' ')' + LIMPORT import_stmt osemi +| LIMPORT '(' import_stmt_list osemi ')' osemi +| LIMPORT '(' ')' osemi import_stmt: import_here import_package import_there @@ -268,18 +271,19 @@ import_there: * declarations */ xdcl: - common_dcl -| xfndcl + common_dcl osemi +| xfndcl osemi { $$ = list1($1); } -| ';' +| error osemi { $$ = nil; } -| error xdcl +| ';' { - $$ = $2; + yyerror("empty top-level declaration"); + $$ = nil; } common_dcl: @@ -1479,6 +1483,7 @@ braced_keyval_list: * optional things */ osemi: + %prec NotSemi | ';' ocomma: -- 2.48.1