From 52082c01a17cb4e7d81022bb33d74e7baec4b489 Mon Sep 17 00:00:00 2001 From: dalance Date: Wed, 18 Sep 2019 18:34:03 +0900 Subject: [PATCH] Fix include with TextMacroUsage --- sv-parser-pp/src/preprocess.rs | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/sv-parser-pp/src/preprocess.rs b/sv-parser-pp/src/preprocess.rs index 11c9f2f..a829b67 100644 --- a/sv-parser-pp/src/preprocess.rs +++ b/sv-parser-pp/src/preprocess.rs @@ -112,6 +112,18 @@ fn preprocess_str, U: AsRef>( let mut ret = PreprocessedText::new(); for n in pp_text.into_iter().event() { + match n.clone() { + NodeEvent::Enter(x) => { + if skip_nodes.contains(&x) { + skip = true; + } + } + NodeEvent::Leave(x) => { + if skip_nodes.contains(&x) { + skip = false; + } + } + } match n { NodeEvent::Enter(RefNode::ResetallCompilerDirective(_)) if !skip => { defines.clear(); @@ -247,8 +259,10 @@ fn preprocess_str, U: AsRef>( } IncludeCompilerDirective::TextMacroUsage(x) => { let (_, _, ref x) = x.nodes; + skip_nodes.push(x.into()); let (p, _, _, _) = resolve_text_macro_usage(x, s, path.as_ref(), &defines, include_paths)?; + let p = p.trim().trim_matches('"'); PathBuf::from(p) } }; @@ -274,16 +288,7 @@ fn preprocess_str, U: AsRef>( ret.push(&text, path, range); defines = new_defines; } - NodeEvent::Enter(x) => { - if skip_nodes.contains(&x) { - skip = true; - } - } - NodeEvent::Leave(x) => { - if skip_nodes.contains(&x) { - skip = false; - } - } + _ => (), } }