mirror of
https://github.com/golang/go
synced 2024-11-02 08:01:26 +00:00
gc: fix spurious syntax error
Fixes #1071. R=ken2 CC=golang-dev https://golang.org/cl/2136043
This commit is contained in:
parent
ebe837d6eb
commit
dea283750b
1 changed files with 21 additions and 10 deletions
|
@ -20,6 +20,17 @@
|
|||
%{
|
||||
#include <stdio.h> /* if we don't, bison will, and go.h re-#defines getc */
|
||||
#include "go.h"
|
||||
|
||||
static void
|
||||
fixlbrace(int lbr)
|
||||
{
|
||||
// If the opening brace was an LBODY,
|
||||
// set up for another one now that we're done.
|
||||
// See comment in lex.c about loophack.
|
||||
if(lbr == LBODY)
|
||||
loophack = 1;
|
||||
}
|
||||
|
||||
%}
|
||||
%union {
|
||||
Node* node;
|
||||
|
@ -862,11 +873,7 @@ pexpr_no_paren:
|
|||
$$ = nod(OCOMPLIT, N, $1);
|
||||
$$->list = $3;
|
||||
|
||||
// If the opening brace was an LBODY,
|
||||
// set up for another one now that we're done.
|
||||
// See comment in lex.c about loophack.
|
||||
if($2 == LBODY)
|
||||
loophack = 1;
|
||||
fixlbrace($2);
|
||||
}
|
||||
| pexpr_no_paren '{' braced_keyval_list '}'
|
||||
{
|
||||
|
@ -1063,25 +1070,29 @@ recvchantype:
|
|||
}
|
||||
|
||||
structtype:
|
||||
LSTRUCT '{' structdcl_list osemi '}'
|
||||
LSTRUCT lbrace structdcl_list osemi '}'
|
||||
{
|
||||
$$ = nod(OTSTRUCT, N, N);
|
||||
$$->list = $3;
|
||||
fixlbrace($2);
|
||||
}
|
||||
| LSTRUCT '{' '}'
|
||||
| LSTRUCT lbrace '}'
|
||||
{
|
||||
$$ = nod(OTSTRUCT, N, N);
|
||||
fixlbrace($2);
|
||||
}
|
||||
|
||||
interfacetype:
|
||||
LINTERFACE '{' interfacedcl_list osemi '}'
|
||||
LINTERFACE lbrace interfacedcl_list osemi '}'
|
||||
{
|
||||
$$ = nod(OTINTER, N, N);
|
||||
$$->list = $3;
|
||||
fixlbrace($2);
|
||||
}
|
||||
| LINTERFACE '{' '}'
|
||||
| LINTERFACE lbrace '}'
|
||||
{
|
||||
$$ = nod(OTINTER, N, N);
|
||||
fixlbrace($2);
|
||||
}
|
||||
|
||||
keyval:
|
||||
|
|
Loading…
Reference in a new issue