diff --git a/sv-parser-parser/src/source_text/system_verilog_source_text.rs b/sv-parser-parser/src/source_text/system_verilog_source_text.rs index d8a4d97..d4549da 100644 --- a/sv-parser-parser/src/source_text/system_verilog_source_text.rs +++ b/sv-parser-parser/src/source_text/system_verilog_source_text.rs @@ -14,8 +14,11 @@ pub(crate) fn source_text(s: Span) -> IResult { #[tracable_parser] #[packrat_parser] pub(crate) fn source_text_incomplete(s: Span) -> IResult { + // 解析 white_space let (s, a) = many0(white_space)(s)?; + // 解析 timescale 信息 let (s, b) = opt(timeunits_declaration)(s)?; + // 解析模块信息 let (s, c) = many0(description)(s)?; Ok((s, SourceText { nodes: (a, b, c) })) } diff --git a/sv-parser-pp/src/preprocess.rs b/sv-parser-pp/src/preprocess.rs index 816d306..e0d1d75 100644 --- a/sv-parser-pp/src/preprocess.rs +++ b/sv-parser-pp/src/preprocess.rs @@ -1,6 +1,5 @@ use crate::range::Range; use nom::combinator::all_consuming; -use nom::Parser; use nom_greedyerror::error_position; use std::collections::{BTreeMap, HashMap}; use std::convert::TryInto; @@ -453,7 +452,7 @@ pub fn preprocess_str, U: AsRef, V: BuildHasher>( let mut is_cover = false; if let Some(define_text) = defines.get(&id) { if let Some(define_text) = define_text { - if define_text.text.is_some() && define_text.text.clone().unwrap().text == "dide-undefined" { + if define_text.text.is_some() && define_text.text.clone().unwrap().text == "UNKNOWN_MACRO" { is_cover = true; } } @@ -619,7 +618,7 @@ pub fn preprocess_str, U: AsRef, V: BuildHasher>( let mut is_cover = false; if let Some(define_text) = defines.get(&id) { if let Some(define_text) = define_text { - if define_text.text.is_some() && define_text.text.clone().unwrap().text == "dide-undefined" { + if define_text.text.is_some() && define_text.text.clone().unwrap().text == "UNKNOWN_MACRO" { // println!("enter dide"); is_cover = true; } diff --git a/sv-parser/src/lib.rs b/sv-parser/src/lib.rs index fa69eb2..afce2a1 100644 --- a/sv-parser/src/lib.rs +++ b/sv-parser/src/lib.rs @@ -210,6 +210,8 @@ pub fn parse_sv_pp( } else { sv_parser(span) }; + // println!("result {result:?}"); + match result { Ok((_, x)) => Ok(( SyntaxTree {