From 9eb01b42f62888ad4a7ffd0fef8c140b93e01919 Mon Sep 17 00:00:00 2001 From: DJ Delorie Date: Thu, 12 Oct 2000 17:47:35 +0000 Subject: * Make comma after string after icon/control optional. --- binutils/rcparse.y | 54 ++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 48 insertions(+), 6 deletions(-) (limited to 'binutils/rcparse.y') diff --git a/binutils/rcparse.y b/binutils/rcparse.y index 39551c2..b67338f 100644 --- a/binutils/rcparse.y +++ b/binutils/rcparse.y @@ -136,11 +136,11 @@ static unsigned long class; %type vertrans %type suboptions memflags_move_discard memflags_move %type memflag -%type id +%type id resref %type exstyle parennumber %type numexpr posnumexpr cnumexpr optcnumexpr cposnumexpr %type acc_options acc_option menuitem_flags menuitem_flag -%type optstringc file_name +%type optstringc file_name resname %type sizednumexpr sizedposnumexpr %left '|' @@ -636,24 +636,24 @@ control: rcparse_warning (_("IEDIT requires DIALOGEX")); res_string_to_id (&$$->class, "HEDIT"); } - | ICON id cnumexpr cnumexpr cnumexpr opt_control_data + | ICON resref numexpr cnumexpr cnumexpr opt_control_data { $$ = define_icon_control ($2, $3, $4, $5, 0, 0, 0, $6, dialog.ex); } - | ICON id cnumexpr cnumexpr cnumexpr cnumexpr cnumexpr + | ICON resref numexpr cnumexpr cnumexpr cnumexpr cnumexpr opt_control_data { $$ = define_icon_control ($2, $3, $4, $5, 0, 0, 0, $8, dialog.ex); } - | ICON id cnumexpr cnumexpr cnumexpr cnumexpr cnumexpr + | ICON resref numexpr cnumexpr cnumexpr cnumexpr cnumexpr icon_styleexpr optcnumexpr opt_control_data { $$ = define_icon_control ($2, $3, $4, $5, style, $9, 0, $10, dialog.ex); } - | ICON id numexpr cnumexpr cnumexpr cnumexpr cnumexpr + | ICON resref numexpr cnumexpr cnumexpr cnumexpr cnumexpr icon_styleexpr cnumexpr cnumexpr opt_control_data { $$ = define_icon_control ($2, $3, $4, $5, style, $9, $10, $11, @@ -809,6 +809,10 @@ optstringc: { $$ = NULL; } + | QUOTEDSTRING + { + $$ = $1; + } | QUOTEDSTRING ',' { $$ = $1; @@ -1262,6 +1266,44 @@ id: } ; +/* A resource reference. */ + +resname: + QUOTEDSTRING + { + $$ = $1; + } + | QUOTEDSTRING ',' + { + $$ = $1; + } + | STRING ',' + { + $$ = $1; + } + ; + + +resref: + posnumexpr ',' + { + $$.named = 0; + $$.u.id = $1; + } + | resname + { + char *copy, *s; + + /* It seems that resource ID's are forced to upper case. */ + copy = xstrdup ($1); + for (s = copy; *s != '\0'; s++) + if (islower ((unsigned char) *s)) + *s = toupper ((unsigned char) *s); + res_string_to_id (&$$, copy); + free (copy); + } + ; + /* Generic suboptions. These may appear before the BEGIN in any multiline statement. */ -- cgit v1.1