Commit ffafad19 authored by Ken Thompson's avatar Ken Thompson

setup for keywords in fieldnames

R=r
OCL=19883
CL=19883
parent e081f25c
...@@ -56,7 +56,7 @@ ...@@ -56,7 +56,7 @@
%type <node> simple_stmt osimple_stmt semi_stmt %type <node> simple_stmt osimple_stmt semi_stmt
%type <node> expr uexpr pexpr expr_list oexpr oexpr_list expr_list_r %type <node> expr uexpr pexpr expr_list oexpr oexpr_list expr_list_r
%type <node> exprsym3_list_r exprsym3 %type <node> exprsym3_list_r exprsym3
%type <node> name onew_name new_name new_name_list_r %type <node> name onew_name new_name new_name_list_r new_field
%type <node> vardcl_list_r vardcl Avardcl Bvardcl %type <node> vardcl_list_r vardcl Avardcl Bvardcl
%type <node> interfacedcl_list_r interfacedcl %type <node> interfacedcl_list_r interfacedcl
%type <node> structdcl_list_r structdcl embed %type <node> structdcl_list_r structdcl embed
...@@ -958,6 +958,12 @@ new_name: ...@@ -958,6 +958,12 @@ new_name:
$$ = newname($1); $$ = newname($1);
} }
new_field:
sym2
{
$$ = newname($1);
}
new_type: new_type:
sym1 sym1
{ {
...@@ -980,8 +986,16 @@ sym1: ...@@ -980,8 +986,16 @@ sym1:
sym sym
| keyword | keyword
/*
* keywords that can be field names
* pretty much any name can be allowed
* limited only by good taste
*/
sym2: sym2:
sym1 sym1
| LTYPE
| LFUNC
| LVAR
/* /*
* keywords that can be variables * keywords that can be variables
...@@ -1402,12 +1416,12 @@ interfacedcl_list_r: ...@@ -1402,12 +1416,12 @@ interfacedcl_list_r:
} }
structdcl: structdcl:
new_name ',' structdcl new_field ',' structdcl
{ {
$$ = nod(ODCLFIELD, $1, N); $$ = nod(ODCLFIELD, $1, N);
$$ = nod(OLIST, $$, $3); $$ = nod(OLIST, $$, $3);
} }
| new_name type oliteral | new_field type oliteral
{ {
$$ = nod(ODCLFIELD, $1, N); $$ = nod(ODCLFIELD, $1, N);
$$->type = $2; $$->type = $2;
...@@ -2000,7 +2014,7 @@ hidden_importsym: ...@@ -2000,7 +2014,7 @@ hidden_importsym:
* to check whether the rest of the grammar is free of * to check whether the rest of the grammar is free of
* reduce/reduce conflicts, comment this section out by * reduce/reduce conflicts, comment this section out by
* removing the slash on the next line. * removing the slash on the next line.
*/ *
lpack: lpack:
LATYPE LATYPE
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment