diff --git a/src/ast.rs b/src/ast.rs index 3af2f73..4c419b7 100644 --- a/src/ast.rs +++ b/src/ast.rs @@ -1,5 +1,7 @@ pub mod any_node; +pub mod locate; pub mod node; pub(crate) use any_node::*; +pub(crate) use locate::*; pub(crate) use node::*; pub(crate) use sv_parser_macro::*; diff --git a/src/ast/locate.rs b/src/ast/locate.rs new file mode 100644 index 0000000..530600f --- /dev/null +++ b/src/ast/locate.rs @@ -0,0 +1,18 @@ +use crate::parser::*; + +#[derive(Copy, Clone, Default, Debug, PartialEq)] +pub struct Locate { + offset: usize, + line: u32, + len: usize, +} + +impl<'a> From> for Locate { + fn from(x: Span<'a>) -> Self { + Locate { + offset: x.offset, + line: x.line, + len: x.fragment.len(), + } + } +} diff --git a/src/ast/node.rs b/src/ast/node.rs index e8bbed3..a112a90 100644 --- a/src/ast/node.rs +++ b/src/ast/node.rs @@ -1,5 +1,4 @@ use crate::ast::*; -use crate::parser::*; pub(crate) trait Node<'a> { fn next(&'a self) -> RefNodes<'a>; diff --git a/src/lib.rs b/src/lib.rs index 180c807..9eaf5e8 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,7 +1,6 @@ #![recursion_limit = "256"] pub mod ast; pub mod parser; -use ast::*; use parser::*; use nom_packrat::storage; diff --git a/src/parser.rs b/src/parser.rs index 9bd84c0..9671949 100644 --- a/src/parser.rs +++ b/src/parser.rs @@ -21,6 +21,8 @@ pub use source_text::*; pub use specify_section::*; pub use udp_declaration_and_instantiation::*; +// ----------------------------------------------------------------------------- + pub(crate) const RECURSIVE_FLAG_WORDS: usize = 1; #[derive(Copy, Clone, Default, Debug, PartialEq)] @@ -32,22 +34,7 @@ pub(crate) struct Extra { pub(crate) type Span<'a> = nom_locate::LocatedSpanEx<&'a str, Extra>; -#[derive(Copy, Clone, Default, Debug, PartialEq)] -pub struct Locate { - offset: usize, - line: u32, - len: usize, -} - -impl<'a> From> for Locate { - fn from(x: Span<'a>) -> Self { - Locate { - offset: x.offset, - line: x.line, - len: x.fragment.len(), - } - } -} +// ----------------------------------------------------------------------------- mod thread_context {