aboutsummaryrefslogtreecommitdiff
path: root/gcc/cppinit.c
diff options
context:
space:
mode:
authorNeil Booth <neilb@earthling.net>2000-07-09 09:19:44 +0000
committerNeil Booth <neil@gcc.gnu.org>2000-07-09 09:19:44 +0000
commit91fcd1584b47b95f35043b1ac1c4f8ca92a6e16f (patch)
treeda206aace0d455cab3fa91f129af3841c667f84d /gcc/cppinit.c
parent8514e31898f206915bbae2970285b1f35cd192ad (diff)
downloadgcc-91fcd1584b47b95f35043b1ac1c4f8ca92a6e16f.zip
gcc-91fcd1584b47b95f35043b1ac1c4f8ca92a6e16f.tar.gz
gcc-91fcd1584b47b95f35043b1ac1c4f8ca92a6e16f.tar.bz2
cpphash.h: ISvspace, is_vspace, is_nvspace: New.
* cpphash.h: ISvspace, is_vspace, is_nvspace: New. IShspace, ISspace: Update. * cppinit.c: ISTABLE: Update. V: New. * cpplex.c (IS_HSPACE, S_NEWLINE): Remove. (IS_DIRECTIVE): Rename KNOWN_DIRECTIVE. (skip_block_comment, skip_line_comment, parse_string, lex_line): Use is_vspace rather than IS_NEWLINE. (skip_whitespace, lex_line): Clean up to use is_nvspace. (lex_line): Use KNOWN_DIRECTIVE. Any kind of directive gets a BOL flag. (lex_next): Unconditionally stop if within a directive. Treat directives within macro invocations as directives (after parse_args emits error), not as the argument. * testsuite/gcc.dg/cpp/directiv.c: New tests. * testsuite/gcc.dg/cpp/undef1.c: Update. From-SVN: r34933
Diffstat (limited to 'gcc/cppinit.c')
-rw-r--r--gcc/cppinit.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/gcc/cppinit.c b/gcc/cppinit.c
index 0882634..88a3e8c 100644
--- a/gcc/cppinit.c
+++ b/gcc/cppinit.c
@@ -138,6 +138,7 @@ enum { QUOTE = 0, BRACKET, SYSTEM, AFTER };
#define A(x) s(x, ISidnum|ISidstart)
#define N(x) s(x, ISidnum|ISnumstart)
#define H(x) s(x, IShspace|ISspace)
+#define V(x) s(x, ISvspace|ISspace)
#define S(x) s(x, ISspace)
ISTABLE
@@ -153,14 +154,17 @@ ISTABLE
N('1') N('2') N('3') N('4') N('5') N('6') N('7') N('8') N('9') N('0')
- H('\0') H(' ') H('\t') H('\v') H('\f')
+ H(' ') H('\t')
- S('\n')
+ V('\n') V('\r')
+
+ S('\0') S('\v') S('\f')
END
#undef A
#undef N
#undef H
+#undef V
#undef S
#undef s
#undef ISTABLE