From a8a9dbc9c669c8bd2a2f45d870562fc3ab93201d Mon Sep 17 00:00:00 2001 From: Ken Thompson Date: Mon, 11 Aug 2008 19:17:28 -0700 Subject: [PATCH] print() and field names R=r DELTA=86 (61 added, 3 deleted, 22 changed) OCL=14099 CL=14099 --- src/cmd/gc/go.y | 100 ++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 79 insertions(+), 21 deletions(-) diff --git a/src/cmd/gc/go.y b/src/cmd/gc/go.y index 2fe3cc0832..be7cd89f7c 100644 --- a/src/cmd/gc/go.y +++ b/src/cmd/gc/go.y @@ -12,22 +12,23 @@ struct Val val; int lint; } -%token LNAME LBASETYPE LATYPE LPACK LACONST %token LLITERAL %token LASOP -%token LPACKAGE LIMPORT LEXPORT -%token LMAP LCHAN LINTERFACE LFUNC LSTRUCT -%token LCOLAS LFALL LRETURN -%token LNEW LLEN -%token LVAR LTYPE LCONST LCONVERT LSELECT -%token LFOR LIF LELSE LSWITCH LCASE LDEFAULT -%token LBREAK LCONTINUE LGO LGOTO LRANGE +%token LNAME LBASETYPE LATYPE LPACK LACONST +%token LPACKAGE LIMPORT LEXPORT +%token LMAP LCHAN LINTERFACE LFUNC LSTRUCT +%token LCOLAS LFALL LRETURN +%token LNEW LLEN +%token LVAR LTYPE LCONST LCONVERT LSELECT +%token LFOR LIF LELSE LSWITCH LCASE LDEFAULT +%token LBREAK LCONTINUE LGO LGOTO LRANGE +%token LNIL LTRUE LFALSE LIOTA +%token LPANIC LPRINT LIGNORE + %token LOROR LANDAND LEQ LNE LLE LLT LGE LGT %token LLSH LRSH LINC LDEC LSEND LRECV -%token LNIL LTRUE LFALSE LIOTA -%token LPANIC LPRINT LIGNORE -%type sym laconst lname latype +%type sym sym1 sym2 key1 key2 laconst lname latype %type chandir %type xdcl xdcl_list_r oxdcl_list %type common_dcl Acommon_dcl Bcommon_dcl @@ -410,13 +411,13 @@ semi_stmt: $$ = nod(OCALL, $2, $4); $$ = nod(OPROC, $$, N); } -| LPRINT expr_list +| LPRINT '(' oexpr_list ')' { - $$ = nod(OPRINT, $2, N); + $$ = nod(OPRINT, $3, N); } -| LPANIC oexpr_list +| LPANIC '(' oexpr_list ')' { - $$ = nod(OPANIC, $2, N); + $$ = nod(OPANIC, $3, N); } | LGOTO new_name { @@ -707,7 +708,7 @@ pexpr: { $$ = $2; } -| pexpr '.' sym +| pexpr '.' sym1 { $$ = nod(ODOT, $1, newname($3)); } @@ -811,13 +812,13 @@ name_name: } new_name: - sym + sym2 { $$ = newname($1); } new_type: - sym + sym2 { $$ = newtype($1); } @@ -828,6 +829,63 @@ sym: | LACONST | LPACK +sym1: + sym +| key1 +| key2 + +sym2: + sym +| key2 + +/* + * keywords that we can + * use a field names + */ +key1: + LPACKAGE +| LIMPORT +| LEXPORT +| LMAP +| LCHAN +| LINTERFACE +| LFUNC +| LSTRUCT +| LFALL +| LRETURN +| LVAR +| LTYPE +| LCONST +| LCONVERT +| LSELECT +| LFOR +| LIF +| LELSE +| LSWITCH +| LCASE +| LDEFAULT +| LBREAK +| LCONTINUE +| LGO +| LGOTO +| LRANGE +| LIGNORE + +/* + * keywords that we can + * use a variable/type names + */ +key2: + LNIL +| LTRUE +| LFALSE +| LIOTA +| LLEN +| LPANIC +| LPRINT +| LNEW +| LBASETYPE + name: lname { @@ -1336,7 +1394,7 @@ export: { exportsym($1); } -| sym '.' sym +| sym '.' sym1 { exportsym(pkglookup($3->name, $1->name)); } @@ -1520,7 +1578,7 @@ hidden_import: } isym: - sym '.' sym + sym '.' sym1 { $$ = nod(OIMPORT, N, N); $$->osym = $1; @@ -1528,7 +1586,7 @@ isym: $$->sym = $3; renamepkg($$); } -| '(' sym ')' sym '.' sym +| '(' sym ')' sym '.' sym1 { $$ = nod(OIMPORT, N, N); $$->osym = $2; -- 2.48.1