From f84cddb99891e30f17c466793c2afd2865240e80 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Wed, 9 Oct 1996 16:19:12 -0400 Subject: [PATCH] (yylex): Treat `$' just like `_', except issue a diagnostic if !dollars_in_ident or if pedantic. From-SVN: r12927 --- gcc/c-lex.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/gcc/c-lex.c b/gcc/c-lex.c index d8e9e80da40..2bf91532a58 100644 --- a/gcc/c-lex.c +++ b/gcc/c-lex.c @@ -986,11 +986,6 @@ yylex () value = ENDFILE; break; - case '$': - if (dollars_in_ident) - goto letter; - return '$'; - case 'L': /* Capital L may start a wide-string or wide-character constant. */ { @@ -1041,6 +1036,7 @@ yylex () case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': case '_': + case '$': letter: p = token_buffer; while (isalnum (c) || c == '_' || c == '$' || c == '@') @@ -1048,8 +1044,13 @@ yylex () /* Make sure this char really belongs in an identifier. */ if (c == '@' && ! doing_objc_thang) break; - if (c == '$' && ! dollars_in_ident) - break; + if (c == '$') + { + if (! dollars_in_ident) + error ("`$' in identifier"); + else if (pedantic) + pedwarn ("`$' in identifier"); + } if (p >= token_buffer + maxtoken) p = extend_token_buffer (p); @@ -1658,7 +1659,7 @@ yylex () ungetc (c, finput); *p = 0; - if (isalnum (c) || c == '.' || c == '_' + if (isalnum (c) || c == '.' || c == '_' || c == '$' || (!flag_traditional && (c == '-' || c == '+') && (p[-1] == 'e' || p[-1] == 'E'))) error ("missing white space after number `%s'", token_buffer); -- 2.30.2