diff options
author | Alexandre Oliva <oliva@lsd.ic.unicamp.br> | 2000-02-23 19:21:07 +0000 |
---|---|---|
committer | Alexandre Oliva <aoliva@gcc.gnu.org> | 2000-02-23 19:21:07 +0000 |
commit | 525bc95d4a71eef870aa511696aef58f752c5cac (patch) | |
tree | 8563639f4dd1a3dcf134a19e283b5f8ea189a1dd /gcc | |
parent | 1cb8d58accf67dcaa8f9bdd07dc0467964d3fd4e (diff) | |
download | gcc-525bc95d4a71eef870aa511696aef58f752c5cac.zip gcc-525bc95d4a71eef870aa511696aef58f752c5cac.tar.gz gcc-525bc95d4a71eef870aa511696aef58f752c5cac.tar.bz2 |
cpplib.h (enum cpp_token): Added CPP_WCHAR and CPP_WSTRING.
* cpplib.h (enum cpp_token): Added CPP_WCHAR and CPP_WSTRING.
* cpplib.c (cpp_get_token): Produce them.
* cppexp.c (cpp_lex): Handle them.
From-SVN: r32121
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cppexp.c | 5 | ||||
-rw-r--r-- | gcc/cpplib.c | 5 | ||||
-rw-r--r-- | gcc/cpplib.h | 2 |
4 files changed, 15 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 24ddde4..2aaccfb 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2000-02-23 Alexandre Oliva <oliva@lsd.ic.unicamp.br> + + * cpplib.h (enum cpp_token): Added CPP_WCHAR and CPP_WSTRING. + * cpplib.c (cpp_get_token): Produce them. + * cppexp.c (cpp_lex): Handle them. + 2000-02-23 Nick Clifton <nickc@cygnus.com> * config/arm/arm.c (arm_comp_type_attributes): Simply and diff --git a/gcc/cppexp.c b/gcc/cppexp.c index a7db2ce..f659559 100644 --- a/gcc/cppexp.c +++ b/gcc/cppexp.c @@ -1,5 +1,5 @@ /* Parse C expressions for CCCP. - Copyright (C) 1987, 92, 94, 95, 97, 98, 1999 Free Software Foundation. + Copyright (C) 1987, 92, 94, 95, 97, 98, 1999, 2000 Free Software Foundation. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the @@ -397,10 +397,13 @@ cpp_lex (pfile, skip_evaluation) case CPP_NUMBER: return parse_number (pfile, tok_start, tok_end); case CPP_STRING: + case CPP_WSTRING: cpp_error (pfile, "string constants are not allowed in #if expressions"); op.op = ERROR; return op; + case CPP_CHAR: + case CPP_WCHAR: return parse_charconst (pfile, tok_start, tok_end); case CPP_NAME: diff --git a/gcc/cpplib.c b/gcc/cpplib.c index 9ffa4a1..43a3bfa 100644 --- a/gcc/cpplib.c +++ b/gcc/cpplib.c @@ -2447,7 +2447,6 @@ cpp_get_token (pfile) case '\"': case '\'': - string: parse_string (pfile, c); pfile->only_seen_white = 0; return c == '\'' ? CPP_CHAR : CPP_STRING; @@ -2600,7 +2599,9 @@ cpp_get_token (pfile) { CPP_PUTC (pfile, c); c = GETC (); - goto string; + parse_string (pfile, c); + pfile->only_seen_white = 0; + return c == '\'' ? CPP_WCHAR : CPP_WSTRING; } goto letter; diff --git a/gcc/cpplib.h b/gcc/cpplib.h index 82eb55c..592093c 100644 --- a/gcc/cpplib.h +++ b/gcc/cpplib.h @@ -43,7 +43,9 @@ enum cpp_token { CPP_NAME, CPP_NUMBER, CPP_CHAR, + CPP_WCHAR, CPP_STRING, + CPP_WSTRING, CPP_DIRECTIVE, CPP_LPAREN, /* "(" */ CPP_RPAREN, /* ")" */ |