From a733e3b98026bea5bc2aedf2bd6193f654d29623 Mon Sep 17 00:00:00 2001 From: dalance Date: Tue, 5 Nov 2019 20:40:31 +0900 Subject: [PATCH] Add LF/CR+LF support --- CHANGELOG.md | 2 ++ sv-parser-parser/src/general/compiler_directives.rs | 8 +++++++- sv-parser-pp/src/preprocess.rs | 4 +++- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cc1249a..5666057 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ## [Unreleased](https://github.com/dalance/sv-parser/compare/v0.3.4...Unreleased) - ReleaseDate +* [Added] LF/CR+LF support + ## [v0.3.4](https://github.com/dalance/sv-parser/compare/v0.3.3...v0.3.4) - 2019-11-05 * [Fixed] define with string literal diff --git a/sv-parser-parser/src/general/compiler_directives.rs b/sv-parser-parser/src/general/compiler_directives.rs index 572eb78..fdfdd9e 100644 --- a/sv-parser-parser/src/general/compiler_directives.rs +++ b/sv-parser-parser/src/general/compiler_directives.rs @@ -204,7 +204,13 @@ pub(crate) fn text_macro_identifier_exact(s: Span) -> IResult IResult { - let (s, a) = many1(alt((tag("\\\n"), tag("\\"), is_not("\\\n"))))(s)?; + let (s, a) = many1(alt(( + tag("\\\n"), + tag("\\\r\n"), + tag("\\\r"), + tag("\\"), + is_not("\\\r\n"), + )))(s)?; let mut ret = None; for x in a { diff --git a/sv-parser-pp/src/preprocess.rs b/sv-parser-pp/src/preprocess.rs index 55394e7..a821bd3 100644 --- a/sv-parser-pp/src/preprocess.rs +++ b/sv-parser-pp/src/preprocess.rs @@ -437,7 +437,9 @@ fn resolve_text_macro_usage, U: AsRef>( .replace("``", "") .replace("`\\`\"", "\\\"") .replace("`\"", "\"") - .replace("\\\n", ""), + .replace("\\\n", "") + .replace("\\\r\n", "") + .replace("\\\r", ""), ); } }