diff --git a/README.md b/README.md index 18eced3..0d34890 100644 --- a/README.md +++ b/README.md @@ -69,7 +69,7 @@ A parser library for System Verilog. | expressions | subroutine_calls | x | x | | | expressions | expressions | x | x | | | expressions | primaries | x | x | | -| expressions | expression_leftside_values | x | x | | +| expressions | expression_leftside_values | x | x | x | | expressions | operators | x | x | x | | expressions | numbers | x | x | x | | expressions | strings | x | x | x | diff --git a/node_derive/src/lib.rs b/node_derive/src/lib.rs index 69378c9..616d31e 100644 --- a/node_derive/src/lib.rs +++ b/node_derive/src/lib.rs @@ -49,10 +49,6 @@ fn impl_node(ast: &syn::DeriveInput) -> TokenStream { let gen = quote! { impl<'a> Node<'a> for #name<'a> { - fn test(&'a self) -> String { - format!("{}", stringify!(#name)) - } - fn next(&'a self) -> AnyNodes<'a> { #next } @@ -115,12 +111,12 @@ fn impl_any_node(ast: &syn::DeriveInput) -> TokenStream { } #[proc_macro_attribute] -pub fn trace(_attr: TokenStream, item: TokenStream) -> TokenStream { +pub fn parser(_attr: TokenStream, item: TokenStream) -> TokenStream { let item = parse_macro_input!(item as ItemFn); - impl_trace(&item) + impl_parser(&item) } -fn impl_trace(item: &syn::ItemFn) -> TokenStream { +fn impl_parser(item: &syn::ItemFn) -> TokenStream { let ident = &item.ident; let mut item = item.clone(); diff --git a/src/ast/node.rs b/src/ast/node.rs index b858ce0..6793989 100644 --- a/src/ast/node.rs +++ b/src/ast/node.rs @@ -2,14 +2,10 @@ use crate::ast::*; use crate::parser::*; pub trait Node<'a> { - fn test(&'a self) -> String; fn next(&'a self) -> AnyNodes<'a>; } impl<'a> Node<'a> for Span<'a> { - fn test(&'a self) -> String { - String::from("") - } fn next(&'a self) -> AnyNodes<'a> { vec![].into() } diff --git a/src/parser/behavioral_statements/assertion_statements.rs b/src/parser/behavioral_statements/assertion_statements.rs index 640b916..f71f116 100644 --- a/src/parser/behavioral_statements/assertion_statements.rs +++ b/src/parser/behavioral_statements/assertion_statements.rs @@ -101,7 +101,7 @@ pub enum AssertTiming<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn assertion_item(s: Span) -> IResult { alt(( map(concurrent_assertion_item, |x| AssertionItem::Concurrent(x)), @@ -111,14 +111,14 @@ pub fn assertion_item(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn deferred_immediate_assertion_item(s: Span) -> IResult { let (s, a) = opt(pair(block_identifier, symbol(":")))(s)?; let (s, b) = deferred_immediate_assertion_statement(s)?; Ok((s, DeferredImmediateAssetionItem { nodes: (a, b) })) } -#[trace] +#[parser] pub fn procedural_assertion_statement(s: Span) -> IResult { alt(( map(concurrent_assertion_statement, |x| { @@ -133,7 +133,7 @@ pub fn procedural_assertion_statement(s: Span) -> IResult IResult { alt(( map(simple_immediate_assertion_statement, |x| { @@ -145,7 +145,7 @@ pub fn immediate_assertion_statement(s: Span) -> IResult IResult { @@ -162,7 +162,7 @@ pub fn simple_immediate_assertion_statement( ))(s) } -#[trace] +#[parser] pub fn simple_immediate_assert_statement(s: Span) -> IResult { let (s, a) = symbol("assert")(s)?; let (s, b) = paren(expression)(s)?; @@ -170,7 +170,7 @@ pub fn simple_immediate_assert_statement(s: Span) -> IResult IResult { let (s, a) = symbol("assume")(s)?; let (s, b) = paren(expression)(s)?; @@ -178,7 +178,7 @@ pub fn simple_immediate_assume_statement(s: Span) -> IResult IResult { let (s, a) = symbol("cover")(s)?; let (s, b) = paren(expression)(s)?; @@ -186,7 +186,7 @@ pub fn simple_immediate_cover_statement(s: Span) -> IResult IResult { @@ -203,7 +203,7 @@ pub fn deferred_immediate_assertion_statement( ))(s) } -#[trace] +#[parser] pub fn deferred_immediate_assert_statement( s: Span, ) -> IResult { @@ -219,7 +219,7 @@ pub fn deferred_immediate_assert_statement( )) } -#[trace] +#[parser] pub fn deferred_immediate_assume_statement( s: Span, ) -> IResult { @@ -235,7 +235,7 @@ pub fn deferred_immediate_assume_statement( )) } -#[trace] +#[parser] pub fn deferred_immediate_cover_statement( s: Span, ) -> IResult { @@ -251,7 +251,7 @@ pub fn deferred_immediate_cover_statement( )) } -#[trace] +#[parser] pub fn assert_timing(s: Span) -> IResult { alt(( map(symbol("#0"), |x| AssertTiming::Zero(x)), diff --git a/src/parser/behavioral_statements/case_statements.rs b/src/parser/behavioral_statements/case_statements.rs index 5748354..bff796b 100644 --- a/src/parser/behavioral_statements/case_statements.rs +++ b/src/parser/behavioral_statements/case_statements.rs @@ -144,7 +144,7 @@ pub struct OpenValueRange<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn case_statement(s: Span) -> IResult { alt(( case_statement_normal, @@ -153,7 +153,7 @@ pub fn case_statement(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn case_statement_normal(s: Span) -> IResult { let (s, a) = opt(unique_priority)(s)?; let (s, b) = case_keyword(s)?; @@ -169,7 +169,7 @@ pub fn case_statement_normal(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn case_statement_matches(s: Span) -> IResult { let (s, a) = opt(unique_priority)(s)?; let (s, b) = case_keyword(s)?; @@ -186,7 +186,7 @@ pub fn case_statement_matches(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn case_statement_inside(s: Span) -> IResult { let (s, a) = opt(unique_priority)(s)?; let (s, b) = symbol("case")(s)?; @@ -203,7 +203,7 @@ pub fn case_statement_inside(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn case_keyword(s: Span) -> IResult { alt(( map(symbol("casez"), |x| CaseKeyword::Casez(x)), @@ -212,13 +212,13 @@ pub fn case_keyword(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn case_expression(s: Span) -> IResult { let (s, a) = expression(s)?; Ok((s, CaseExpression { nodes: (a,) })) } -#[trace] +#[parser] pub fn case_item(s: Span) -> IResult { alt(( case_item_nondefault, @@ -226,7 +226,7 @@ pub fn case_item(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn case_item_nondefault(s: Span) -> IResult { let (s, a) = list(symbol(","), case_item_expression)(s)?; let (s, b) = symbol(":")(s)?; @@ -237,7 +237,7 @@ pub fn case_item_nondefault(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn case_item_default(s: Span) -> IResult { let (s, a) = symbol("default")(s)?; let (s, b) = opt(symbol(":"))(s)?; @@ -245,7 +245,7 @@ pub fn case_item_default(s: Span) -> IResult { Ok((s, CaseItemDefault { nodes: (a, b, c) })) } -#[trace] +#[parser] pub fn case_pattern_item(s: Span) -> IResult { alt(( case_pattern_item_nondefault, @@ -253,7 +253,7 @@ pub fn case_pattern_item(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn case_pattern_item_nondefault(s: Span) -> IResult { let (s, a) = pattern(s)?; let (s, b) = opt(pair(symbol("&&&"), expression))(s)?; @@ -267,7 +267,7 @@ pub fn case_pattern_item_nondefault(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn case_inside_item(s: Span) -> IResult { alt(( case_inside_item_nondefault, @@ -275,7 +275,7 @@ pub fn case_inside_item(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn case_inside_item_nondefault(s: Span) -> IResult { let (s, a) = open_range_list(s)?; let (s, b) = symbol(":")(s)?; @@ -286,13 +286,13 @@ pub fn case_inside_item_nondefault(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn case_item_expression(s: Span) -> IResult { let (s, a) = expression(s)?; Ok((s, CaseItemExpression { nodes: (a,) })) } -#[trace] +#[parser] pub fn randcase_statement(s: Span) -> IResult { let (s, a) = symbol("randcase")(s)?; let (s, b) = randcase_item(s)?; @@ -306,7 +306,7 @@ pub fn randcase_statement(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn randcase_item(s: Span) -> IResult { let (s, a) = expression(s)?; let (s, b) = symbol(":")(s)?; @@ -314,13 +314,13 @@ pub fn randcase_item(s: Span) -> IResult { Ok((s, RandcaseItem { nodes: (a, b, c) })) } -#[trace] +#[parser] pub fn open_range_list(s: Span) -> IResult { let (s, a) = list(symbol(","), open_value_range)(s)?; Ok((s, OpenRangeList { nodes: (a,) })) } -#[trace] +#[parser] pub fn open_value_range(s: Span) -> IResult { let (s, a) = value_range(s)?; Ok((s, OpenValueRange { nodes: (a,) })) diff --git a/src/parser/behavioral_statements/clocking_block.rs b/src/parser/behavioral_statements/clocking_block.rs index d3132ea..7a03b2f 100644 --- a/src/parser/behavioral_statements/clocking_block.rs +++ b/src/parser/behavioral_statements/clocking_block.rs @@ -202,12 +202,12 @@ pub struct ClockvarExpression<'a> { } // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn clocking_declaration(s: Span) -> IResult { alt((clocking_declaration_local, clocking_declaration_global))(s) } -#[trace] +#[parser] pub fn clocking_declaration_local(s: Span) -> IResult { let (s, a) = opt(default)(s)?; let (s, b) = symbol("clocking")(s)?; @@ -225,13 +225,13 @@ pub fn clocking_declaration_local(s: Span) -> IResult )) } -#[trace] +#[parser] pub fn default(s: Span) -> IResult { let (s, a) = symbol("default")(s)?; Ok((s, Default { nodes: (a,) })) } -#[trace] +#[parser] pub fn clocking_declaration_global(s: Span) -> IResult { let (s, a) = symbol("global")(s)?; let (s, b) = symbol("clocking")(s)?; @@ -248,12 +248,12 @@ pub fn clocking_declaration_global(s: Span) -> IResult IResult { alt((clocking_event_identifier, clocking_event_expression))(s) } -#[trace] +#[parser] pub fn clocking_event_identifier(s: Span) -> IResult { let (s, a) = symbol("@")(s)?; let (s, b) = identifier(s)?; @@ -263,7 +263,7 @@ pub fn clocking_event_identifier(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn clocking_event_expression(s: Span) -> IResult { let (s, a) = symbol("@")(s)?; let (s, b) = paren(event_expression)(s)?; @@ -273,7 +273,7 @@ pub fn clocking_event_expression(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn clocking_item(s: Span) -> IResult { alt(( clocking_item_default, @@ -282,7 +282,7 @@ pub fn clocking_item(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn clocking_item_default(s: Span) -> IResult { let (s, a) = symbol("default")(s)?; let (s, b) = default_skew(s)?; @@ -293,7 +293,7 @@ pub fn clocking_item_default(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn clocking_item_direction(s: Span) -> IResult { let (s, a) = clocking_direction(s)?; let (s, b) = list_of_clocking_decl_assign(s)?; @@ -304,7 +304,7 @@ pub fn clocking_item_direction(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn clocking_item_assertion(s: Span) -> IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = assertion_item_declaration(s)?; @@ -314,7 +314,7 @@ pub fn clocking_item_assertion(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn default_skew(s: Span) -> IResult { alt(( default_skew_input, @@ -323,21 +323,21 @@ pub fn default_skew(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn default_skew_input(s: Span) -> IResult { let (s, a) = symbol("input")(s)?; let (s, b) = clocking_skew(s)?; Ok((s, DefaultSkew::Input(DefaultSkewInput { nodes: (a, b) }))) } -#[trace] +#[parser] pub fn default_skew_output(s: Span) -> IResult { let (s, a) = symbol("output")(s)?; let (s, b) = clocking_skew(s)?; Ok((s, DefaultSkew::Output(DefaultSkewOutput { nodes: (a, b) }))) } -#[trace] +#[parser] pub fn default_skew_input_output(s: Span) -> IResult { let (s, a) = symbol("input")(s)?; let (s, b) = clocking_skew(s)?; @@ -351,7 +351,7 @@ pub fn default_skew_input_output(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn clocking_direction(s: Span) -> IResult { alt(( clocking_direction_input, @@ -361,7 +361,7 @@ pub fn clocking_direction(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn clocking_direction_input(s: Span) -> IResult { let (s, a) = symbol("input")(s)?; let (s, b) = opt(clocking_skew)(s)?; @@ -371,7 +371,7 @@ pub fn clocking_direction_input(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn clocking_direction_output(s: Span) -> IResult { let (s, a) = symbol("output")(s)?; let (s, b) = opt(clocking_skew)(s)?; @@ -381,7 +381,7 @@ pub fn clocking_direction_output(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn clocking_direction_input_output(s: Span) -> IResult { let (s, a) = symbol("input")(s)?; let (s, b) = opt(clocking_skew)(s)?; @@ -395,26 +395,26 @@ pub fn clocking_direction_input_output(s: Span) -> IResult IResult { let (s, a) = symbol("inout")(s)?; Ok((s, ClockingDirection::Inout(a))) } -#[trace] +#[parser] pub fn list_of_clocking_decl_assign(s: Span) -> IResult { let (s, a) = list(symbol(","), clocking_decl_assign)(s)?; Ok((s, ListOfClockingDeclAssign { nodes: (a,) })) } -#[trace] +#[parser] pub fn clocking_decl_assign(s: Span) -> IResult { let (s, a) = signal_identifier(s)?; let (s, b) = opt(pair(symbol("="), expression))(s)?; Ok((s, ClockingDeclAssign { nodes: (a, b) })) } -#[trace] +#[parser] pub fn clocking_skew(s: Span) -> IResult { alt(( clocking_skew_edge, @@ -422,14 +422,14 @@ pub fn clocking_skew(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn clocking_skew_edge(s: Span) -> IResult { let (s, a) = edge_identifier(s)?; let (s, b) = opt(delay_control)(s)?; Ok((s, ClockingSkew::Edge(ClockingSkewEdge { nodes: (a, b) }))) } -#[trace] +#[parser] pub fn clocking_drive(s: Span) -> IResult { let (s, a) = clockvar_expression(s)?; let (s, b) = symbol("<=")(s)?; @@ -443,7 +443,7 @@ pub fn clocking_drive(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn cycle_delay(s: Span) -> IResult { alt(( cycle_delay_integral, @@ -452,7 +452,7 @@ pub fn cycle_delay(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn cycle_delay_integral(s: Span) -> IResult { let (s, a) = symbol("##")(s)?; let (s, b) = integral_number(s)?; @@ -462,7 +462,7 @@ pub fn cycle_delay_integral(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn cycle_delay_identifier(s: Span) -> IResult { let (s, a) = symbol("##")(s)?; let (s, b) = identifier(s)?; @@ -472,7 +472,7 @@ pub fn cycle_delay_identifier(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn cycle_delay_expression(s: Span) -> IResult { let (s, a) = symbol("##")(s)?; let (s, b) = paren(expression)(s)?; @@ -482,13 +482,13 @@ pub fn cycle_delay_expression(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn clockvar(s: Span) -> IResult { let (s, a) = hierarchical_identifier(s)?; Ok((s, Clockvar { nodes: (a,) })) } -#[trace] +#[parser] pub fn clockvar_expression(s: Span) -> IResult { let (s, a) = clockvar(s)?; let (s, b) = select(s)?; diff --git a/src/parser/behavioral_statements/conditional_statements.rs b/src/parser/behavioral_statements/conditional_statements.rs index 0434b7c..72d1783 100644 --- a/src/parser/behavioral_statements/conditional_statements.rs +++ b/src/parser/behavioral_statements/conditional_statements.rs @@ -50,7 +50,7 @@ pub struct CondPattern<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn conditional_statement(s: Span) -> IResult { let (s, a) = opt(unique_priority)(s)?; let (s, b) = symbol("if")(s)?; @@ -72,7 +72,7 @@ pub fn conditional_statement(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn unique_priority(s: Span) -> IResult { alt(( map(symbol("unique0"), |x| UniquePriority::Unique0(x)), @@ -81,13 +81,13 @@ pub fn unique_priority(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn cond_predicate(s: Span) -> IResult { let (s, a) = list(symbol("&&&"), expression_or_cond_pattern)(s)?; Ok((s, CondPredicate { nodes: (a,) })) } -#[trace] +#[parser] pub fn expression_or_cond_pattern(s: Span) -> IResult { alt(( map(expression, |x| ExpressionOrCondPattern::Expression(x)), @@ -95,7 +95,7 @@ pub fn expression_or_cond_pattern(s: Span) -> IResult IResult { let (s, a) = expression(s)?; let (s, b) = symbol("matches")(s)?; diff --git a/src/parser/behavioral_statements/continuous_assignment_and_net_alias_statements.rs b/src/parser/behavioral_statements/continuous_assignment_and_net_alias_statements.rs index 131027d..f91dca3 100644 --- a/src/parser/behavioral_statements/continuous_assignment_and_net_alias_statements.rs +++ b/src/parser/behavioral_statements/continuous_assignment_and_net_alias_statements.rs @@ -61,12 +61,12 @@ pub struct NetAssignment<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn continuous_assign(s: Span) -> IResult { alt((continuous_assign_net, continuous_assign_variable))(s) } -#[trace] +#[parser] pub fn continuous_assign_net(s: Span) -> IResult { let (s, a) = symbol("assign")(s)?; let (s, b) = opt(drive_strength)(s)?; @@ -82,7 +82,7 @@ pub fn continuous_assign_net(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn continuous_assign_variable(s: Span) -> IResult { let (s, a) = symbol("assign")(s)?; let (s, b) = opt(delay_control)(s)?; @@ -97,19 +97,19 @@ pub fn continuous_assign_variable(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn list_of_net_assignments(s: Span) -> IResult { let (s, a) = list(symbol(","), net_assignment)(s)?; Ok((s, ListOfNetAssignments { nodes: (a,) })) } -#[trace] +#[parser] pub fn list_of_variable_assignments(s: Span) -> IResult { let (s, a) = list(symbol(","), variable_assignment)(s)?; Ok((s, ListOfVariableAssignments { nodes: (a,) })) } -#[trace] +#[parser] pub fn net_alias(s: Span) -> IResult { let (s, a) = symbol("alias")(s)?; let (s, b) = net_lvalue(s)?; @@ -125,7 +125,7 @@ pub fn net_alias(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn net_assignment(s: Span) -> IResult { let (s, a) = net_lvalue(s)?; let (s, b) = symbol("=")(s)?; diff --git a/src/parser/behavioral_statements/looping_statements.rs b/src/parser/behavioral_statements/looping_statements.rs index cadaa91..f1fe216 100644 --- a/src/parser/behavioral_statements/looping_statements.rs +++ b/src/parser/behavioral_statements/looping_statements.rs @@ -120,7 +120,7 @@ pub struct LoopVariables<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn loop_statement(s: Span) -> IResult { alt(( loop_statement_forever, @@ -132,7 +132,7 @@ pub fn loop_statement(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn loop_statement_forever(s: Span) -> IResult { let (s, a) = symbol("forever")(s)?; let (s, b) = statement_or_null(s)?; @@ -142,7 +142,7 @@ pub fn loop_statement_forever(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn loop_statement_repeat(s: Span) -> IResult { let (s, a) = symbol("repeat")(s)?; let (s, b) = paren(expression)(s)?; @@ -153,7 +153,7 @@ pub fn loop_statement_repeat(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn loop_statement_while(s: Span) -> IResult { let (s, a) = symbol("while")(s)?; let (s, b) = paren(expression)(s)?; @@ -164,7 +164,7 @@ pub fn loop_statement_while(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn loop_statement_for(s: Span) -> IResult { let (s, a) = symbol("for")(s)?; let (s, b) = paren(tuple(( @@ -178,7 +178,7 @@ pub fn loop_statement_for(s: Span) -> IResult { Ok((s, LoopStatement::For(LoopStatementFor { nodes: (a, b, c) }))) } -#[trace] +#[parser] pub fn loop_statement_do_while(s: Span) -> IResult { let (s, a) = symbol("do")(s)?; let (s, b) = statement_or_null(s)?; @@ -193,7 +193,7 @@ pub fn loop_statement_do_while(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn loop_statement_foreach(s: Span) -> IResult { let (s, a) = symbol("foreach")(s)?; let (s, b) = paren(pair( @@ -207,7 +207,7 @@ pub fn loop_statement_foreach(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn for_initialization(s: Span) -> IResult { alt(( map(list_of_variable_assignments, |x| { @@ -217,7 +217,7 @@ pub fn for_initialization(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn for_initialization_declaration(s: Span) -> IResult { let (s, a) = list(symbol(","), for_variable_declaration)(s)?; Ok(( @@ -226,7 +226,7 @@ pub fn for_initialization_declaration(s: Span) -> IResult IResult { let (s, a) = opt(var)(s)?; let (s, b) = data_type(s)?; @@ -237,19 +237,19 @@ pub fn for_variable_declaration(s: Span) -> IResult IResult { let (s, a) = symbol("var")(s)?; Ok((s, Var { nodes: (a,) })) } -#[trace] +#[parser] pub fn for_step(s: Span) -> IResult { let (s, a) = list(symbol(","), for_step_assignment)(s)?; Ok((s, ForStep { nodes: (a,) })) } -#[trace] +#[parser] pub fn for_step_assignment(s: Span) -> IResult { alt(( map(operator_assignment, |x| { @@ -264,7 +264,7 @@ pub fn for_step_assignment(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn loop_variables(s: Span) -> IResult { let (s, a) = list(symbol(","), opt(index_variable_identifier))(s)?; Ok((s, LoopVariables { nodes: (a,) })) diff --git a/src/parser/behavioral_statements/parallel_and_sequential_blocks.rs b/src/parser/behavioral_statements/parallel_and_sequential_blocks.rs index 4345398..452e5bb 100644 --- a/src/parser/behavioral_statements/parallel_and_sequential_blocks.rs +++ b/src/parser/behavioral_statements/parallel_and_sequential_blocks.rs @@ -52,7 +52,7 @@ pub enum JoinKeyword<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn action_block(s: Span) -> IResult { alt(( map(statement_or_null, |x| ActionBlock::StatementOrNull(x)), @@ -60,7 +60,7 @@ pub fn action_block(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn action_block_else(s: Span) -> IResult { let (s, a) = opt(statement)(s)?; let (s, b) = symbol("else")(s)?; @@ -68,7 +68,7 @@ pub fn action_block_else(s: Span) -> IResult { Ok((s, ActionBlock::Else(ActionBlockElse { nodes: (a, b, c) }))) } -#[trace] +#[parser] pub fn seq_block(s: Span) -> IResult { let (s, a) = symbol("begin")(s)?; let (s, b) = opt(pair(symbol(":"), block_identifier))(s)?; @@ -84,7 +84,7 @@ pub fn seq_block(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn par_block(s: Span) -> IResult { let (s, a) = symbol("fork")(s)?; let (s, b) = opt(pair(symbol(":"), block_identifier))(s)?; @@ -100,7 +100,7 @@ pub fn par_block(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn join_keyword(s: Span) -> IResult { alt(( map(symbol("join_any"), |x| JoinKeyword::JoinAny(x)), diff --git a/src/parser/behavioral_statements/patterns.rs b/src/parser/behavioral_statements/patterns.rs index 2d4e2ae..6c5065d 100644 --- a/src/parser/behavioral_statements/patterns.rs +++ b/src/parser/behavioral_statements/patterns.rs @@ -132,7 +132,7 @@ pub struct AssignmentPatternVariableLvalue<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn pattern(s: Span) -> IResult { alt(( pattern_variable, @@ -146,7 +146,7 @@ pub fn pattern(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn pattern_variable(s: Span) -> IResult { let (s, a) = symbol(".")(s)?; let (s, b) = variable_identifier(s)?; @@ -156,7 +156,7 @@ pub fn pattern_variable(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn pattern_tagged(s: Span) -> IResult { let (s, a) = symbol("tagged")(s)?; let (s, b) = member_identifier(s)?; @@ -167,13 +167,13 @@ pub fn pattern_tagged(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn pattern_list(s: Span) -> IResult { let (s, a) = apostrophe_brace(list(symbol(","), pattern))(s)?; Ok((s, Pattern::List(Box::new(PatternList { nodes: (a,) })))) } -#[trace] +#[parser] pub fn pattern_identifier_list(s: Span) -> IResult { let (s, a) = apostrophe_brace(list( symbol(","), @@ -185,7 +185,7 @@ pub fn pattern_identifier_list(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn assignment_pattern(s: Span) -> IResult { alt(( assignment_pattern_list, @@ -195,7 +195,7 @@ pub fn assignment_pattern(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn assignment_pattern_list(s: Span) -> IResult { let (s, a) = apostrophe_brace(list(symbol(","), expression))(s)?; Ok(( @@ -204,7 +204,7 @@ pub fn assignment_pattern_list(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn assignment_pattern_structure(s: Span) -> IResult { let (s, a) = apostrophe_brace(list( symbol(","), @@ -216,7 +216,7 @@ pub fn assignment_pattern_structure(s: Span) -> IResult )) } -#[trace] +#[parser] pub fn assignment_pattern_array(s: Span) -> IResult { let (s, a) = apostrophe_brace(list( symbol(","), @@ -228,7 +228,7 @@ pub fn assignment_pattern_array(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn assignment_pattern_repeat(s: Span) -> IResult { let (s, a) = apostrophe_brace(pair( constant_expression, @@ -240,7 +240,7 @@ pub fn assignment_pattern_repeat(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn structure_pattern_key(s: Span) -> IResult { alt(( map(member_identifier, |x| { @@ -252,7 +252,7 @@ pub fn structure_pattern_key(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn array_pattern_key(s: Span) -> IResult { alt(( map(constant_expression, |x| { @@ -264,7 +264,7 @@ pub fn array_pattern_key(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn assignment_pattern_key(s: Span) -> IResult { alt(( map(simple_type, |x| AssignmentPatternKey::SimpleType(x)), @@ -272,14 +272,14 @@ pub fn assignment_pattern_key(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn assignment_pattern_expression(s: Span) -> IResult { let (s, a) = opt(assignment_pattern_expression_type)(s)?; let (s, b) = assignment_pattern(s)?; Ok((s, AssignmentPatternExpression { nodes: (a, b) })) } -#[trace] +#[parser] pub fn assignment_pattern_expression_type( s: Span, ) -> IResult { @@ -299,7 +299,7 @@ pub fn assignment_pattern_expression_type( ))(s) } -#[trace] +#[parser] pub fn constant_assignment_pattern_expression( s: Span, ) -> IResult { @@ -307,13 +307,13 @@ pub fn constant_assignment_pattern_expression( Ok((s, ConstantAssignmentPatternExpression { nodes: (a,) })) } -#[trace] +#[parser] pub fn assignment_pattern_net_lvalue(s: Span) -> IResult { let (s, a) = apostrophe_brace(list(symbol(","), net_lvalue))(s)?; Ok((s, AssignmentPatternNetLvalue { nodes: (a,) })) } -#[trace] +#[parser] pub fn assignment_pattern_variable_lvalue( s: Span, ) -> IResult { diff --git a/src/parser/behavioral_statements/procedural_blocks_and_assignments.rs b/src/parser/behavioral_statements/procedural_blocks_and_assignments.rs index 81e7f2c..d6d943b 100644 --- a/src/parser/behavioral_statements/procedural_blocks_and_assignments.rs +++ b/src/parser/behavioral_statements/procedural_blocks_and_assignments.rs @@ -130,21 +130,21 @@ pub struct VariableAssignment<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn initial_construct(s: Span) -> IResult { let (s, a) = symbol("initial")(s)?; let (s, b) = statement_or_null(s)?; Ok((s, InitialConstruct { nodes: (a, b) })) } -#[trace] +#[parser] pub fn always_construct(s: Span) -> IResult { let (s, a) = always_keyword(s)?; let (s, b) = statement(s)?; Ok((s, AlwaysConstruct { nodes: (a, b) })) } -#[trace] +#[parser] pub fn always_keyword(s: Span) -> IResult { alt(( map(symbol("always_comb"), |x| AlwaysKeyword::AlwaysComb(x)), @@ -154,14 +154,14 @@ pub fn always_keyword(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn final_construct(s: Span) -> IResult { let (s, a) = symbol("final")(s)?; let (s, b) = function_statement(s)?; Ok((s, FinalConstruct { nodes: (a, b) })) } -#[trace] +#[parser] pub fn blocking_assignment(s: Span) -> IResult { alt(( blocking_assignment_variable, @@ -173,7 +173,7 @@ pub fn blocking_assignment(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn blocking_assignment_variable(s: Span) -> IResult { let (s, a) = variable_lvalue(s)?; let (s, b) = symbol("=")(s)?; @@ -187,7 +187,7 @@ pub fn blocking_assignment_variable(s: Span) -> IResult IResult { let (s, a) = nonrange_variable_lvalue(s)?; let (s, b) = symbol("=")(s)?; @@ -200,7 +200,7 @@ pub fn blocking_assignment_nonrange_variable(s: Span) -> IResult IResult { let (s, a) = opt(implicit_class_handle_or_class_scope_or_package_scope)(s)?; let (s, b) = hierarchical_variable_identifier(s)?; @@ -215,7 +215,7 @@ pub fn blocking_assignment_hierarchical_variable(s: Span) -> IResult IResult { let (s, a) = variable_lvalue(s)?; let (s, b) = assignment_operator(s)?; @@ -223,7 +223,7 @@ pub fn operator_assignment(s: Span) -> IResult { Ok((s, OperatorAssignment { nodes: (a, b, c) })) } -#[trace] +#[parser] pub fn assignment_operator(s: Span) -> IResult { alt(( map(symbol("="), |x| AssignmentOperator { nodes: (x,) }), @@ -242,7 +242,7 @@ pub fn assignment_operator(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn nonblocking_assignment(s: Span) -> IResult { let (s, a) = variable_lvalue(s)?; let (s, b) = symbol("<=")(s)?; @@ -256,7 +256,7 @@ pub fn nonblocking_assignment(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn procedural_continuous_assignment(s: Span) -> IResult { alt(( procedural_continuous_assignment_assign, @@ -268,7 +268,7 @@ pub fn procedural_continuous_assignment(s: Span) -> IResult IResult { @@ -282,7 +282,7 @@ pub fn procedural_continuous_assignment_assign( )) } -#[trace] +#[parser] pub fn procedural_continuous_assignment_deassign( s: Span, ) -> IResult { @@ -296,7 +296,7 @@ pub fn procedural_continuous_assignment_deassign( )) } -#[trace] +#[parser] pub fn procedural_continuous_assignment_force_variable( s: Span, ) -> IResult { @@ -310,7 +310,7 @@ pub fn procedural_continuous_assignment_force_variable( )) } -#[trace] +#[parser] pub fn procedural_continuous_assignment_force_net( s: Span, ) -> IResult { @@ -324,7 +324,7 @@ pub fn procedural_continuous_assignment_force_net( )) } -#[trace] +#[parser] pub fn procedural_continuous_assignment_release_variable( s: Span, ) -> IResult { @@ -338,7 +338,7 @@ pub fn procedural_continuous_assignment_release_variable( )) } -#[trace] +#[parser] pub fn procedural_continuous_assignment_release_net( s: Span, ) -> IResult { @@ -352,7 +352,7 @@ pub fn procedural_continuous_assignment_release_net( )) } -#[trace] +#[parser] pub fn variable_assignment(s: Span) -> IResult { let (s, a) = variable_lvalue(s)?; let (s, b) = symbol("=")(s)?; diff --git a/src/parser/behavioral_statements/randsequence.rs b/src/parser/behavioral_statements/randsequence.rs index 42e9ece..2a251d9 100644 --- a/src/parser/behavioral_statements/randsequence.rs +++ b/src/parser/behavioral_statements/randsequence.rs @@ -150,7 +150,7 @@ pub struct RsCaseItemDefault<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn randsequence_statement(s: Span) -> IResult { let (s, a) = symbol("randsequence")(s)?; let (s, b) = paren(opt(production_identifier))(s)?; @@ -165,7 +165,7 @@ pub fn randsequence_statement(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn production(s: Span) -> IResult { let (s, a) = opt(data_type_or_void)(s)?; let (s, b) = production_identifier(s)?; @@ -181,7 +181,7 @@ pub fn production(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn rs_rule(s: Span) -> IResult { let (s, a) = rs_production_list(s)?; let (s, b) = opt(triple( @@ -192,12 +192,12 @@ pub fn rs_rule(s: Span) -> IResult { Ok((s, RsRule { nodes: (a, b) })) } -#[trace] +#[parser] pub fn rs_production_list(s: Span) -> IResult { alt((rs_production_list_prod, rs_production_list_join))(s) } -#[trace] +#[parser] pub fn rs_production_list_prod(s: Span) -> IResult { let (s, a) = rs_prod(s)?; let (s, b) = many0(rs_prod)(s)?; @@ -207,7 +207,7 @@ pub fn rs_production_list_prod(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn rs_production_list_join(s: Span) -> IResult { let (s, a) = symbol("rand")(s)?; let (s, b) = symbol("join")(s)?; @@ -223,7 +223,7 @@ pub fn rs_production_list_join(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn weight_specification(s: Span) -> IResult { alt(( map(integral_number, |x| WeightSpecification::IntegralNumber(x)), @@ -232,7 +232,7 @@ pub fn weight_specification(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn weight_specification_expression(s: Span) -> IResult { let (s, a) = paren(expression)(s)?; Ok(( @@ -241,13 +241,13 @@ pub fn weight_specification_expression(s: Span) -> IResult IResult { let (s, a) = brace(pair(many0(data_declaration), many0(statement_or_null)))(s)?; Ok((s, RsCodeBlock { nodes: (a,) })) } -#[trace] +#[parser] pub fn rs_prod(s: Span) -> IResult { alt(( map(production_item, |x| RsProd::ProductionItem(x)), @@ -258,14 +258,14 @@ pub fn rs_prod(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn production_item(s: Span) -> IResult { let (s, a) = production_identifier(s)?; let (s, b) = opt(paren(list_of_arguments))(s)?; Ok((s, ProductionItem { nodes: (a, b) })) } -#[trace] +#[parser] pub fn rs_if_else(s: Span) -> IResult { let (s, a) = symbol("if")(s)?; let (s, b) = paren(expression)(s)?; @@ -279,7 +279,7 @@ pub fn rs_if_else(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn rs_repeat(s: Span) -> IResult { let (s, a) = symbol("repeat")(s)?; let (s, b) = paren(expression)(s)?; @@ -287,7 +287,7 @@ pub fn rs_repeat(s: Span) -> IResult { Ok((s, RsRepeat { nodes: (a, b, c) })) } -#[trace] +#[parser] pub fn rs_case(s: Span) -> IResult { let (s, a) = symbol("case")(s)?; let (s, b) = paren(case_expression)(s)?; @@ -302,12 +302,12 @@ pub fn rs_case(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn rs_case_item(s: Span) -> IResult { alt((rs_case_item_nondefault, rs_case_item_default))(s) } -#[trace] +#[parser] pub fn rs_case_item_nondefault(s: Span) -> IResult { let (s, a) = list(symbol(","), case_item_expression)(s)?; let (s, b) = symbol(":")(s)?; @@ -321,7 +321,7 @@ pub fn rs_case_item_nondefault(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn rs_case_item_default(s: Span) -> IResult { let (s, a) = symbol("default")(s)?; let (s, b) = opt(symbol(":"))(s)?; diff --git a/src/parser/behavioral_statements/statements.rs b/src/parser/behavioral_statements/statements.rs index 015e5e6..6cd02ca 100644 --- a/src/parser/behavioral_statements/statements.rs +++ b/src/parser/behavioral_statements/statements.rs @@ -75,7 +75,7 @@ pub struct VariableIdentifierList<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn statement_or_null(s: Span) -> IResult { alt(( map(statement, |x| StatementOrNull::Statement(x)), @@ -83,7 +83,7 @@ pub fn statement_or_null(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn statement_or_null_attribute(s: Span) -> IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = symbol(";")(s)?; @@ -93,7 +93,7 @@ pub fn statement_or_null_attribute(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn statement(s: Span) -> IResult { let (s, a) = opt(pair(block_identifier, symbol(":")))(s)?; let (s, b) = many0(attribute_instance)(s)?; @@ -101,7 +101,7 @@ pub fn statement(s: Span) -> IResult { Ok((s, Statement { nodes: (a, b, c) })) } -#[trace] +#[parser] pub fn statement_item(s: Span) -> IResult { alt(( map(pair(blocking_assignment, symbol(";")), |x| { @@ -161,13 +161,13 @@ pub fn statement_item(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn function_statement(s: Span) -> IResult { let (s, a) = statement(s)?; Ok((s, FunctionStatement { nodes: (a,) })) } -#[trace] +#[parser] pub fn function_statement_or_null(s: Span) -> IResult { alt(( map(function_statement, |x| { @@ -177,7 +177,7 @@ pub fn function_statement_or_null(s: Span) -> IResult IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = symbol(";")(s)?; @@ -187,7 +187,7 @@ pub fn function_statement_or_null_attribute(s: Span) -> IResult IResult { let (s, a) = list(symbol(","), variable_identifier)(s)?; Ok((s, VariableIdentifierList { nodes: (a,) })) diff --git a/src/parser/behavioral_statements/subroutine_call_statements.rs b/src/parser/behavioral_statements/subroutine_call_statements.rs index 9588242..206a730 100644 --- a/src/parser/behavioral_statements/subroutine_call_statements.rs +++ b/src/parser/behavioral_statements/subroutine_call_statements.rs @@ -25,7 +25,7 @@ pub struct SubroutineCallStatementFunction<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn subroutine_call_statement(s: Span) -> IResult { alt(( map(pair(subroutine_call, symbol(";")), |x| { @@ -35,7 +35,7 @@ pub fn subroutine_call_statement(s: Span) -> IResult IResult { let (s, a) = symbol("void")(s)?; let (s, b) = symbol("'")(s)?; diff --git a/src/parser/behavioral_statements/timing_control_statements.rs b/src/parser/behavioral_statements/timing_control_statements.rs index 4d98d9b..6613250 100644 --- a/src/parser/behavioral_statements/timing_control_statements.rs +++ b/src/parser/behavioral_statements/timing_control_statements.rs @@ -212,7 +212,7 @@ pub struct DisableStatementFork<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn procedural_timing_control_statement( s: Span, ) -> IResult { @@ -221,7 +221,7 @@ pub fn procedural_timing_control_statement( Ok((s, ProceduralTimingControlStatement { nodes: (a, b) })) } -#[trace] +#[parser] pub fn delay_or_event_control(s: Span) -> IResult { alt(( map(delay_control, |x| DelayOrEventControl::Delay(x)), @@ -230,7 +230,7 @@ pub fn delay_or_event_control(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn delay_or_event_control_repeat(s: Span) -> IResult { let (s, a) = symbol("repeat")(s)?; let (s, b) = paren(expression)(s)?; @@ -241,19 +241,19 @@ pub fn delay_or_event_control_repeat(s: Span) -> IResult IResult { alt((delay_control_delay, delay_control_mintypmax))(s) } -#[trace] +#[parser] pub fn delay_control_delay(s: Span) -> IResult { let (s, a) = symbol("#")(s)?; let (s, b) = delay_value(s)?; Ok((s, DelayControl::Delay(DelayControlDelay { nodes: (a, b) }))) } -#[trace] +#[parser] pub fn delay_control_mintypmax(s: Span) -> IResult { let (s, a) = symbol("#")(s)?; let (s, b) = paren(mintypmax_expression)(s)?; @@ -263,7 +263,7 @@ pub fn delay_control_mintypmax(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn event_control(s: Span) -> IResult { alt(( event_control_event_identifier, @@ -274,7 +274,7 @@ pub fn event_control(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn event_control_event_identifier(s: Span) -> IResult { let (s, a) = symbol("@")(s)?; let (s, b) = hierarchical_event_identifier(s)?; @@ -284,7 +284,7 @@ pub fn event_control_event_identifier(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn event_control_event_expression(s: Span) -> IResult { let (s, a) = symbol("@")(s)?; let (s, b) = paren(event_expression)(s)?; @@ -294,7 +294,7 @@ pub fn event_control_event_expression(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn event_control_asterisk(s: Span) -> IResult { let (s, a) = symbol("@*")(s)?; Ok(( @@ -303,7 +303,7 @@ pub fn event_control_asterisk(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn event_control_paren_asterisk(s: Span) -> IResult { let (s, a) = symbol("@")(s)?; let (s, b) = paren(symbol("*"))(s)?; @@ -313,7 +313,7 @@ pub fn event_control_paren_asterisk(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn event_control_sequence_identifier(s: Span) -> IResult { let (s, a) = symbol("@")(s)?; let (s, b) = ps_or_hierarchical_sequence_identifier(s)?; @@ -323,7 +323,7 @@ pub fn event_control_sequence_identifier(s: Span) -> IResult )) } -#[trace] +#[parser] pub fn event_expression(s: Span) -> IResult { alt(( event_expression_expression, @@ -334,7 +334,7 @@ pub fn event_expression(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn event_expression_expression(s: Span) -> IResult { let (s, a) = opt(edge_identifier)(s)?; let (s, b) = expression(s)?; @@ -345,7 +345,7 @@ pub fn event_expression_expression(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn event_expression_sequence(s: Span) -> IResult { let (s, a) = sequence_instance(s)?; let (s, b) = opt(pair(symbol("iff"), expression))(s)?; @@ -355,7 +355,7 @@ pub fn event_expression_sequence(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn event_expression_or(s: Span) -> IResult { let (s, a) = event_expression(s)?; let (s, b) = symbol("or")(s)?; @@ -366,7 +366,7 @@ pub fn event_expression_or(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn event_expression_comma(s: Span) -> IResult { let (s, a) = event_expression(s)?; let (s, b) = symbol(",")(s)?; @@ -377,7 +377,7 @@ pub fn event_expression_comma(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn event_expression_paren(s: Span) -> IResult { let (s, a) = paren(event_expression)(s)?; Ok(( @@ -386,7 +386,7 @@ pub fn event_expression_paren(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn procedural_timing_control(s: Span) -> IResult { alt(( map(delay_control, |x| ProceduralTimingControl::DelayControl(x)), @@ -395,7 +395,7 @@ pub fn procedural_timing_control(s: Span) -> IResult IResult { alt(( jump_statement_return, @@ -404,7 +404,7 @@ pub fn jump_statement(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn jump_statement_return(s: Span) -> IResult { let (s, a) = symbol("return")(s)?; let (s, b) = opt(expression)(s)?; @@ -415,7 +415,7 @@ pub fn jump_statement_return(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn jump_statement_break(s: Span) -> IResult { let (s, a) = symbol("break")(s)?; let (s, b) = symbol(";")(s)?; @@ -425,7 +425,7 @@ pub fn jump_statement_break(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn jump_statement_continue(s: Span) -> IResult { let (s, a) = symbol("continue")(s)?; let (s, b) = symbol(";")(s)?; @@ -435,7 +435,7 @@ pub fn jump_statement_continue(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn wait_statement(s: Span) -> IResult { alt(( wait_statement_wait, @@ -444,7 +444,7 @@ pub fn wait_statement(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn wait_statement_wait(s: Span) -> IResult { let (s, a) = symbol("wait")(s)?; let (s, b) = paren(expression)(s)?; @@ -455,7 +455,7 @@ pub fn wait_statement_wait(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn wait_statement_fork(s: Span) -> IResult { let (s, a) = symbol("wait")(s)?; let (s, b) = symbol("fork")(s)?; @@ -466,7 +466,7 @@ pub fn wait_statement_fork(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn wait_statement_order(s: Span) -> IResult { let (s, a) = symbol("wait_order")(s)?; let (s, b) = paren(list(symbol(","), hierarchical_identifier))(s)?; @@ -477,12 +477,12 @@ pub fn wait_statement_order(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn event_trigger(s: Span) -> IResult { alt((event_trigger_named, event_trigger_nonblocking))(s) } -#[trace] +#[parser] pub fn event_trigger_named(s: Span) -> IResult { let (s, a) = symbol("->")(s)?; let (s, b) = hierarchical_event_identifier(s)?; @@ -493,7 +493,7 @@ pub fn event_trigger_named(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn event_trigger_nonblocking(s: Span) -> IResult { let (s, a) = symbol("->>")(s)?; let (s, b) = opt(delay_or_event_control)(s)?; @@ -507,7 +507,7 @@ pub fn event_trigger_nonblocking(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn disable_statement(s: Span) -> IResult { alt(( disable_statement_task, @@ -516,7 +516,7 @@ pub fn disable_statement(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn disable_statement_task(s: Span) -> IResult { let (s, a) = symbol("disable")(s)?; let (s, b) = hierarchical_task_identifier(s)?; @@ -527,7 +527,7 @@ pub fn disable_statement_task(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn disable_statement_block(s: Span) -> IResult { let (s, a) = symbol("disable")(s)?; let (s, b) = hierarchical_block_identifier(s)?; @@ -538,7 +538,7 @@ pub fn disable_statement_block(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn disable_statement_fork(s: Span) -> IResult { let (s, a) = symbol("disable")(s)?; let (s, b) = symbol("fork")(s)?; diff --git a/src/parser/declarations/assertion_declarations.rs b/src/parser/declarations/assertion_declarations.rs index 83f7b23..cac1c0c 100644 --- a/src/parser/declarations/assertion_declarations.rs +++ b/src/parser/declarations/assertion_declarations.rs @@ -756,7 +756,7 @@ pub struct AssertionVariableDeclaration<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn concurrent_assertion_item(s: Span) -> IResult { alt(( concurrent_assertion_item_statement, @@ -766,7 +766,7 @@ pub fn concurrent_assertion_item(s: Span) -> IResult IResult { let (s, a) = opt(pair(block_identifier, symbol(":")))(s)?; let (s, b) = concurrent_assertion_statement(s)?; @@ -776,7 +776,7 @@ pub fn concurrent_assertion_item_statement(s: Span) -> IResult IResult { alt(( map(assert_property_statement, |x| { @@ -797,7 +797,7 @@ pub fn concurrent_assertion_statement(s: Span) -> IResult IResult { let (s, a) = symbol("assert")(s)?; let (s, b) = symbol("property")(s)?; @@ -811,7 +811,7 @@ pub fn assert_property_statement(s: Span) -> IResult IResult { let (s, a) = symbol("assume")(s)?; let (s, b) = symbol("property")(s)?; @@ -825,7 +825,7 @@ pub fn assume_property_statement(s: Span) -> IResult IResult { let (s, a) = symbol("cover")(s)?; let (s, b) = symbol("property")(s)?; @@ -839,7 +839,7 @@ pub fn cover_property_statement(s: Span) -> IResult IResult { let (s, a) = symbol("expect")(s)?; let (s, b) = paren(property_spec)(s)?; @@ -847,7 +847,7 @@ pub fn expect_property_statement(s: Span) -> IResult IResult { let (s, a) = symbol("cover")(s)?; let (s, b) = symbol("sequence")(s)?; @@ -869,7 +869,7 @@ pub fn cover_sequence_statement(s: Span) -> IResult IResult { let (s, a) = symbol("restrict")(s)?; let (s, b) = symbol("property")(s)?; @@ -883,14 +883,14 @@ pub fn restrict_property_statement(s: Span) -> IResult IResult { let (s, a) = ps_or_hierarchical_property_identifier(s)?; let (s, b) = opt(paren(opt(property_list_of_arguments)))(s)?; Ok((s, PropertyInstance { nodes: (a, b) })) } -#[trace] +#[parser] pub fn property_list_of_arguments(s: Span) -> IResult { alt(( property_list_of_arguments_ordered, @@ -898,7 +898,7 @@ pub fn property_list_of_arguments(s: Span) -> IResult IResult { let (s, a) = list(symbol(","), opt(property_actual_arg))(s)?; let (s, b) = many0(tuple(( @@ -913,7 +913,7 @@ pub fn property_list_of_arguments_ordered(s: Span) -> IResult IResult { let (s, a) = list( symbol(","), @@ -925,7 +925,7 @@ pub fn property_list_of_arguments_named(s: Span) -> IResult IResult { alt(( map(property_expr, |x| PropertyActualArg::PropertyExpr(x)), @@ -935,7 +935,7 @@ pub fn property_actual_arg(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn assertion_item_declaration(s: Span) -> IResult { alt(( map(property_declaration, |x| { @@ -950,7 +950,7 @@ pub fn assertion_item_declaration(s: Span) -> IResult IResult { let (s, a) = symbol("property")(s)?; let (s, b) = property_identifier(s)?; @@ -969,13 +969,13 @@ pub fn property_declaration(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn property_port_list(s: Span) -> IResult { let (s, a) = list(symbol(","), property_port_item)(s)?; Ok((s, PropertyPortList { nodes: (a,) })) } -#[trace] +#[parser] pub fn property_port_item(s: Span) -> IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = opt(pair(local, opt(property_lvar_port_direction)))(s)?; @@ -991,13 +991,13 @@ pub fn property_port_item(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn property_lvar_port_direction(s: Span) -> IResult { let (s, a) = symbol("input")(s)?; Ok((s, PropertyLvarPortDirection::Input(a))) } -#[trace] +#[parser] pub fn property_formal_type(s: Span) -> IResult { alt(( map(sequence_formal_type, |x| { @@ -1007,7 +1007,7 @@ pub fn property_formal_type(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn property_spec(s: Span) -> IResult { let (s, a) = opt(clocking_event)(s)?; let (s, b) = opt(triple( @@ -1019,7 +1019,7 @@ pub fn property_spec(s: Span) -> IResult { Ok((s, PropertySpec { nodes: (a, b, c) })) } -#[trace] +#[parser] pub fn property_expr(s: Span) -> IResult { alt(( alt(( @@ -1062,7 +1062,7 @@ pub fn property_expr(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn property_expr_strong(s: Span) -> IResult { let (s, a) = symbol("strong")(s)?; let (s, b) = paren(sequence_expr)(s)?; @@ -1072,7 +1072,7 @@ pub fn property_expr_strong(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn property_expr_weak(s: Span) -> IResult { let (s, a) = symbol("weak")(s)?; let (s, b) = paren(sequence_expr)(s)?; @@ -1082,7 +1082,7 @@ pub fn property_expr_weak(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn property_expr_paren(s: Span) -> IResult { let (s, a) = paren(sequence_expr)(s)?; Ok(( @@ -1091,7 +1091,7 @@ pub fn property_expr_paren(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn property_expr_not(s: Span) -> IResult { let (s, a) = symbol("not")(s)?; let (s, b) = property_expr(s)?; @@ -1101,7 +1101,7 @@ pub fn property_expr_not(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn property_expr_or(s: Span) -> IResult { let (s, a) = property_expr(s)?; let (s, b) = symbol("or")(s)?; @@ -1112,7 +1112,7 @@ pub fn property_expr_or(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn property_expr_and(s: Span) -> IResult { let (s, a) = property_expr(s)?; let (s, b) = symbol("and")(s)?; @@ -1123,7 +1123,7 @@ pub fn property_expr_and(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn property_expr_implication_overlapped(s: Span) -> IResult { let (s, a) = sequence_expr(s)?; let (s, b) = symbol("|->")(s)?; @@ -1136,7 +1136,7 @@ pub fn property_expr_implication_overlapped(s: Span) -> IResult IResult { let (s, a) = sequence_expr(s)?; let (s, b) = symbol("|=>")(s)?; @@ -1149,7 +1149,7 @@ pub fn property_expr_implication_nonoverlapped(s: Span) -> IResult IResult { let (s, a) = symbol("if")(s)?; let (s, b) = paren(expression_or_dist)(s)?; @@ -1163,7 +1163,7 @@ pub fn property_expr_if(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn property_expr_case(s: Span) -> IResult { let (s, a) = symbol("case")(s)?; let (s, b) = paren(expression_or_dist)(s)?; @@ -1178,7 +1178,7 @@ pub fn property_expr_case(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn property_expr_followed_by_overlapped(s: Span) -> IResult { let (s, a) = sequence_expr(s)?; let (s, b) = symbol("#-#")(s)?; @@ -1191,7 +1191,7 @@ pub fn property_expr_followed_by_overlapped(s: Span) -> IResult IResult { let (s, a) = sequence_expr(s)?; let (s, b) = symbol("#=#")(s)?; @@ -1204,7 +1204,7 @@ pub fn property_expr_followed_by_nonoverlapped(s: Span) -> IResult IResult { let (s, a) = symbol("nexttime")(s)?; let (s, b) = opt(bracket(constant_expression))(s)?; @@ -1215,7 +1215,7 @@ pub fn property_expr_nexttime(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn property_expr_s_nexttime(s: Span) -> IResult { let (s, a) = symbol("s_nexttime")(s)?; let (s, b) = opt(bracket(constant_expression))(s)?; @@ -1226,7 +1226,7 @@ pub fn property_expr_s_nexttime(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn property_expr_always(s: Span) -> IResult { let (s, a) = symbol("always")(s)?; let (s, b) = opt(bracket(cycle_delay_const_range_expression))(s)?; @@ -1237,7 +1237,7 @@ pub fn property_expr_always(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn property_expr_s_always(s: Span) -> IResult { let (s, a) = symbol("s_always")(s)?; let (s, b) = bracket(cycle_delay_const_range_expression)(s)?; @@ -1248,7 +1248,7 @@ pub fn property_expr_s_always(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn property_expr_eventually(s: Span) -> IResult { let (s, a) = symbol("eventually")(s)?; let (s, b) = bracket(constant_range)(s)?; @@ -1259,7 +1259,7 @@ pub fn property_expr_eventually(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn property_expr_s_eventually(s: Span) -> IResult { let (s, a) = symbol("s_eventually")(s)?; let (s, b) = opt(bracket(cycle_delay_const_range_expression))(s)?; @@ -1270,7 +1270,7 @@ pub fn property_expr_s_eventually(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn property_expr_until(s: Span) -> IResult { let (s, a) = property_expr(s)?; let (s, b) = symbol("until")(s)?; @@ -1281,7 +1281,7 @@ pub fn property_expr_until(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn property_expr_s_until(s: Span) -> IResult { let (s, a) = property_expr(s)?; let (s, b) = symbol("s_until")(s)?; @@ -1292,7 +1292,7 @@ pub fn property_expr_s_until(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn property_expr_until_with(s: Span) -> IResult { let (s, a) = property_expr(s)?; let (s, b) = symbol("until_with")(s)?; @@ -1303,7 +1303,7 @@ pub fn property_expr_until_with(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn property_expr_s_until_with(s: Span) -> IResult { let (s, a) = property_expr(s)?; let (s, b) = symbol("s_until_with")(s)?; @@ -1314,7 +1314,7 @@ pub fn property_expr_s_until_with(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn property_expr_implies(s: Span) -> IResult { let (s, a) = property_expr(s)?; let (s, b) = symbol("implies")(s)?; @@ -1325,7 +1325,7 @@ pub fn property_expr_implies(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn property_expr_iff(s: Span) -> IResult { let (s, a) = property_expr(s)?; let (s, b) = symbol("iff")(s)?; @@ -1336,7 +1336,7 @@ pub fn property_expr_iff(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn property_expr_accept_on(s: Span) -> IResult { let (s, a) = symbol("accept_on")(s)?; let (s, b) = paren(expression_or_dist)(s)?; @@ -1347,7 +1347,7 @@ pub fn property_expr_accept_on(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn property_expr_reject_on(s: Span) -> IResult { let (s, a) = symbol("reject_on")(s)?; let (s, b) = paren(expression_or_dist)(s)?; @@ -1358,7 +1358,7 @@ pub fn property_expr_reject_on(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn property_expr_sync_accept_on(s: Span) -> IResult { let (s, a) = symbol("sync_accept_on")(s)?; let (s, b) = paren(expression_or_dist)(s)?; @@ -1369,7 +1369,7 @@ pub fn property_expr_sync_accept_on(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn property_expr_sync_reject_on(s: Span) -> IResult { let (s, a) = symbol("sync_reject_on")(s)?; let (s, b) = paren(expression_or_dist)(s)?; @@ -1380,7 +1380,7 @@ pub fn property_expr_sync_reject_on(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn property_expr_clocking_event(s: Span) -> IResult { let (s, a) = clocking_event(s)?; let (s, b) = property_expr(s)?; @@ -1390,12 +1390,12 @@ pub fn property_expr_clocking_event(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn property_case_item(s: Span) -> IResult { alt((property_case_item_nondefault, property_case_item_default))(s) } -#[trace] +#[parser] pub fn property_case_item_nondefault(s: Span) -> IResult { let (s, a) = list(symbol(","), expression_or_dist)(s)?; let (s, b) = symbol(":")(s)?; @@ -1409,7 +1409,7 @@ pub fn property_case_item_nondefault(s: Span) -> IResult )) } -#[trace] +#[parser] pub fn property_case_item_default(s: Span) -> IResult { let (s, a) = symbol("default")(s)?; let (s, b) = opt(symbol(":"))(s)?; @@ -1423,7 +1423,7 @@ pub fn property_case_item_default(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn sequence_declaration(s: Span) -> IResult { let (s, a) = symbol("sequence")(s)?; let (s, b) = sequence_identifier(s)?; @@ -1442,13 +1442,13 @@ pub fn sequence_declaration(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn sequence_port_list(s: Span) -> IResult { let (s, a) = list(symbol(","), sequence_port_item)(s)?; Ok((s, SequencePortList { nodes: (a,) })) } -#[trace] +#[parser] pub fn sequence_port_item(s: Span) -> IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = opt(pair(local, opt(sequence_lvar_port_direction)))(s)?; @@ -1464,7 +1464,7 @@ pub fn sequence_port_item(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn sequence_lvar_port_direction(s: Span) -> IResult { alt(( map(symbol("input"), |x| SequenceLvarPortDirection::Input(x)), @@ -1473,7 +1473,7 @@ pub fn sequence_lvar_port_direction(s: Span) -> IResult IResult { alt(( map(data_type_or_implicit, |x| { @@ -1484,7 +1484,7 @@ pub fn sequence_formal_type(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn sequence_expr(s: Span) -> IResult { alt(( sequence_expr_cycle_delay_expr, @@ -1502,7 +1502,7 @@ pub fn sequence_expr(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn sequence_expr_cycle_delay_expr(s: Span) -> IResult { let (s, a) = cycle_delay_range(s)?; let (s, b) = sequence_expr(s)?; @@ -1513,7 +1513,7 @@ pub fn sequence_expr_cycle_delay_expr(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn sequence_expr_expr_cycle_delay_expr(s: Span) -> IResult { let (s, a) = sequence_expr(s)?; let (s, b) = cycle_delay_range(s)?; @@ -1527,7 +1527,7 @@ pub fn sequence_expr_expr_cycle_delay_expr(s: Span) -> IResult IResult { let (s, a) = expression_or_dist(s)?; let (s, b) = opt(boolean_abbrev)(s)?; @@ -1537,7 +1537,7 @@ pub fn sequence_expr_expression(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn sequence_expr_instance(s: Span) -> IResult { let (s, a) = sequence_instance(s)?; let (s, b) = opt(sequence_abbrev)(s)?; @@ -1547,7 +1547,7 @@ pub fn sequence_expr_instance(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn sequence_expr_paren(s: Span) -> IResult { let (s, a) = paren(pair( sequence_expr, @@ -1560,7 +1560,7 @@ pub fn sequence_expr_paren(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn sequence_expr_and(s: Span) -> IResult { let (s, a) = sequence_expr(s)?; let (s, b) = symbol("and")(s)?; @@ -1571,7 +1571,7 @@ pub fn sequence_expr_and(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn sequence_expr_intersect(s: Span) -> IResult { let (s, a) = sequence_expr(s)?; let (s, b) = symbol("intersect")(s)?; @@ -1582,7 +1582,7 @@ pub fn sequence_expr_intersect(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn sequence_expr_or(s: Span) -> IResult { let (s, a) = sequence_expr(s)?; let (s, b) = symbol("or")(s)?; @@ -1593,7 +1593,7 @@ pub fn sequence_expr_or(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn sequence_expr_first_match(s: Span) -> IResult { let (s, a) = symbol("first_match")(s)?; let (s, b) = paren(pair( @@ -1606,7 +1606,7 @@ pub fn sequence_expr_first_match(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn sequence_expr_throughout(s: Span) -> IResult { let (s, a) = expression_or_dist(s)?; let (s, b) = symbol("throughout")(s)?; @@ -1617,7 +1617,7 @@ pub fn sequence_expr_throughout(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn sequence_expr_within(s: Span) -> IResult { let (s, a) = sequence_expr(s)?; let (s, b) = symbol("within")(s)?; @@ -1628,7 +1628,7 @@ pub fn sequence_expr_within(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn sequence_expr_clocking_event(s: Span) -> IResult { let (s, a) = clocking_event(s)?; let (s, b) = sequence_expr(s)?; @@ -1638,7 +1638,7 @@ pub fn sequence_expr_clocking_event(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn cycle_delay_range(s: Span) -> IResult { alt(( cycle_delay_range_primary, @@ -1648,7 +1648,7 @@ pub fn cycle_delay_range(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn cycle_delay_range_primary(s: Span) -> IResult { let (s, a) = symbol("##")(s)?; let (s, b) = constant_primary(s)?; @@ -1658,7 +1658,7 @@ pub fn cycle_delay_range_primary(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn cycle_delay_range_expression(s: Span) -> IResult { let (s, a) = symbol("##")(s)?; let (s, b) = bracket(cycle_delay_const_range_expression)(s)?; @@ -1668,7 +1668,7 @@ pub fn cycle_delay_range_expression(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn cycle_delay_range_asterisk(s: Span) -> IResult { let (s, a) = symbol("##")(s)?; let (s, b) = bracket(symbol("*"))(s)?; @@ -1678,7 +1678,7 @@ pub fn cycle_delay_range_asterisk(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn cycle_delay_range_plus(s: Span) -> IResult { let (s, a) = symbol("##")(s)?; let (s, b) = bracket(symbol("+"))(s)?; @@ -1688,7 +1688,7 @@ pub fn cycle_delay_range_plus(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn sequence_method_call(s: Span) -> IResult { let (s, a) = sequence_instance(s)?; let (s, b) = symbol(".")(s)?; @@ -1696,7 +1696,7 @@ pub fn sequence_method_call(s: Span) -> IResult { Ok((s, SequenceMethodCall { nodes: (a, b, c) })) } -#[trace] +#[parser] pub fn sequence_match_item(s: Span) -> IResult { alt(( map(operator_assignment, |x| { @@ -1709,14 +1709,14 @@ pub fn sequence_match_item(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn sequence_instance(s: Span) -> IResult { let (s, a) = ps_or_hierarchical_sequence_identifier(s)?; let (s, b) = opt(paren(opt(sequence_list_of_arguments)))(s)?; Ok((s, SequenceInstance { nodes: (a, b) })) } -#[trace] +#[parser] pub fn sequence_list_of_arguments(s: Span) -> IResult { alt(( sequence_list_of_arguments_ordered, @@ -1724,7 +1724,7 @@ pub fn sequence_list_of_arguments(s: Span) -> IResult IResult { let (s, a) = list(symbol(","), opt(sequence_actual_arg))(s)?; let (s, b) = many0(tuple(( @@ -1739,7 +1739,7 @@ pub fn sequence_list_of_arguments_ordered(s: Span) -> IResult IResult { let (s, a) = list( symbol(","), @@ -1751,7 +1751,7 @@ pub fn sequence_list_of_arguments_named(s: Span) -> IResult IResult { alt(( map(event_expression, |x| SequenceActualArg::EventExpression(x)), @@ -1759,7 +1759,7 @@ pub fn sequence_actual_arg(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn boolean_abbrev(s: Span) -> IResult { alt(( map(consecutive_repetition, |x| { @@ -1772,13 +1772,13 @@ pub fn boolean_abbrev(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn sequence_abbrev(s: Span) -> IResult { let (s, a) = consecutive_repetition(s)?; Ok((s, SequenceAbbrev { nodes: (a,) })) } -#[trace] +#[parser] pub fn consecutive_repetition(s: Span) -> IResult { alt(( consecutive_repetition_expression, @@ -1787,7 +1787,7 @@ pub fn consecutive_repetition(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn consecutive_repetition_expression(s: Span) -> IResult { let (s, a) = bracket(pair(symbol("*"), const_or_range_expression))(s)?; Ok(( @@ -1796,7 +1796,7 @@ pub fn consecutive_repetition_expression(s: Span) -> IResult IResult { let (s, a) = bracket(symbol("*"))(s)?; Ok(( @@ -1805,7 +1805,7 @@ pub fn consecutive_repetition_asterisk(s: Span) -> IResult IResult { let (s, a) = bracket(symbol("+"))(s)?; Ok(( @@ -1814,19 +1814,19 @@ pub fn consecutive_repetition_plus(s: Span) -> IResult IResult { let (s, a) = bracket(pair(symbol("="), const_or_range_expression))(s)?; Ok((s, NonConsecutiveRepetition { nodes: (a,) })) } -#[trace] +#[parser] pub fn goto_repetition(s: Span) -> IResult { let (s, a) = bracket(pair(symbol("->"), const_or_range_expression))(s)?; Ok((s, GotoRepetition { nodes: (a,) })) } -#[trace] +#[parser] pub fn const_or_range_expression(s: Span) -> IResult { alt(( map(constant_expression, |x| { @@ -1838,7 +1838,7 @@ pub fn const_or_range_expression(s: Span) -> IResult IResult { @@ -1848,7 +1848,7 @@ pub fn cycle_delay_const_range_expression( ))(s) } -#[trace] +#[parser] pub fn cycle_delay_const_range_expression_binary( s: Span, ) -> IResult { @@ -1863,7 +1863,7 @@ pub fn cycle_delay_const_range_expression_binary( )) } -#[trace] +#[parser] pub fn cycle_delay_const_range_expression_dollar( s: Span, ) -> IResult { @@ -1878,14 +1878,14 @@ pub fn cycle_delay_const_range_expression_dollar( )) } -#[trace] +#[parser] pub fn expression_or_dist(s: Span) -> IResult { let (s, a) = expression(s)?; let (s, b) = opt(pair(symbol("dist"), brace(dist_list)))(s)?; Ok((s, ExpressionOrDist { nodes: (a, b) })) } -#[trace] +#[parser] pub fn assertion_variable_declaration(s: Span) -> IResult { let (s, a) = var_data_type(s)?; let (s, b) = list_of_variable_decl_assignments(s)?; diff --git a/src/parser/declarations/block_item_declarations.rs b/src/parser/declarations/block_item_declarations.rs index 837e359..df8ce96 100644 --- a/src/parser/declarations/block_item_declarations.rs +++ b/src/parser/declarations/block_item_declarations.rs @@ -44,7 +44,7 @@ pub struct BlockItemDeclarationLet<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn block_item_declaration(s: Span) -> IResult { alt(( block_item_declaration_data, @@ -54,7 +54,7 @@ pub fn block_item_declaration(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn block_item_declaration_data(s: Span) -> IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = data_declaration(s)?; @@ -64,7 +64,7 @@ pub fn block_item_declaration_data(s: Span) -> IResult IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = local_parameter_declaration(s)?; @@ -77,7 +77,7 @@ pub fn block_item_declaration_local_parameter(s: Span) -> IResult IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = parameter_declaration(s)?; @@ -88,7 +88,7 @@ pub fn block_item_declaration_parameter(s: Span) -> IResult IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = let_declaration(s)?; diff --git a/src/parser/declarations/covergroup_declarations.rs b/src/parser/declarations/covergroup_declarations.rs index 85b0b03..d33a00f 100644 --- a/src/parser/declarations/covergroup_declarations.rs +++ b/src/parser/declarations/covergroup_declarations.rs @@ -521,7 +521,7 @@ pub struct CovergroupExpression<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn covergroup_declaration(s: Span) -> IResult { let (s, a) = symbol("covergroup")(s)?; let (s, b) = covergroup_identifier(s)?; @@ -539,12 +539,12 @@ pub fn covergroup_declaration(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn coverage_spec_or_option(s: Span) -> IResult { alt((coverage_spec_or_option_spec, coverage_spec_or_option_option))(s) } -#[trace] +#[parser] pub fn coverage_spec_or_option_spec(s: Span) -> IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = coverage_spec(s)?; @@ -554,7 +554,7 @@ pub fn coverage_spec_or_option_spec(s: Span) -> IResult IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = coverage_option(s)?; @@ -565,12 +565,12 @@ pub fn coverage_spec_or_option_option(s: Span) -> IResult IResult { alt((coverage_option_option, coverage_option_type_option))(s) } -#[trace] +#[parser] pub fn coverage_option_option(s: Span) -> IResult { let (s, a) = symbol("option")(s)?; let (s, b) = symbol(".")(s)?; @@ -585,7 +585,7 @@ pub fn coverage_option_option(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn coverage_option_type_option(s: Span) -> IResult { let (s, a) = symbol("type_option")(s)?; let (s, b) = symbol(".")(s)?; @@ -600,7 +600,7 @@ pub fn coverage_option_type_option(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn coverage_spec(s: Span) -> IResult { alt(( map(cover_point, |x| CoverageSpec::CoverPoint(x)), @@ -608,7 +608,7 @@ pub fn coverage_spec(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn coverage_event(s: Span) -> IResult { alt(( map(clocking_event, |x| CoverageEvent::ClockingEvent(x)), @@ -617,7 +617,7 @@ pub fn coverage_event(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn coverage_event_sample(s: Span) -> IResult { let (s, a) = symbol("with")(s)?; let (s, b) = symbol("function")(s)?; @@ -631,14 +631,14 @@ pub fn coverage_event_sample(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn coverage_event_at(s: Span) -> IResult { let (s, a) = symbol("@@")(s)?; let (s, b) = paren(block_event_expression)(s)?; Ok((s, CoverageEvent::At(CoverageEventAt { nodes: (a, b) }))) } -#[trace] +#[parser] pub fn block_event_expression(s: Span) -> IResult { alt(( block_event_expression_or, @@ -647,7 +647,7 @@ pub fn block_event_expression(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn block_event_expression_or(s: Span) -> IResult { let (s, a) = block_event_expression(s)?; let (s, b) = symbol("or")(s)?; @@ -658,7 +658,7 @@ pub fn block_event_expression_or(s: Span) -> IResult )) } -#[trace] +#[parser] pub fn block_event_expression_begin(s: Span) -> IResult { let (s, a) = symbol("begin")(s)?; let (s, b) = hierarchical_btf_identifier(s)?; @@ -668,7 +668,7 @@ pub fn block_event_expression_begin(s: Span) -> IResult IResult { let (s, a) = symbol("end")(s)?; let (s, b) = hierarchical_btf_identifier(s)?; @@ -678,7 +678,7 @@ pub fn block_event_expression_end(s: Span) -> IResult IResult { alt(( map(hierarchical_tf_identifier, |x| { @@ -691,7 +691,7 @@ pub fn hierarchical_btf_identifier(s: Span) -> IResult IResult { let (s, a) = opt(hierarchical_identifier_or_class_scope)(s)?; let (s, b) = method_identifier(s)?; @@ -701,7 +701,7 @@ pub fn hierarchical_btf_identifier_method(s: Span) -> IResult IResult { @@ -715,7 +715,7 @@ pub fn hierarchical_identifier_or_class_scope( ))(s) } -#[trace] +#[parser] pub fn cover_point(s: Span) -> IResult { let (s, a) = opt(triple( opt(data_type_or_implicit), @@ -734,7 +734,7 @@ pub fn cover_point(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn bins_or_empty(s: Span) -> IResult { alt(( bins_or_empty_non_empty, @@ -742,7 +742,7 @@ pub fn bins_or_empty(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn bins_or_empty_non_empty(s: Span) -> IResult { let (s, a) = brace(pair( many0(attribute_instance), @@ -754,7 +754,7 @@ pub fn bins_or_empty_non_empty(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn bins_or_options(s: Span) -> IResult { alt(( map(coverage_option, |x| BinsOrOptions::CoverageOption(x)), @@ -767,7 +767,7 @@ pub fn bins_or_options(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn bins_or_options_covergroup(s: Span) -> IResult { let (s, a) = opt(wildcard)(s)?; let (s, b) = bins_keyword(s)?; @@ -785,13 +785,13 @@ pub fn bins_or_options_covergroup(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn wildcard(s: Span) -> IResult { let (s, a) = symbol("wildcard")(s)?; Ok((s, Wildcard { nodes: (a,) })) } -#[trace] +#[parser] pub fn bins_or_options_cover_point(s: Span) -> IResult { let (s, a) = opt(wildcard)(s)?; let (s, b) = bins_keyword(s)?; @@ -810,7 +810,7 @@ pub fn bins_or_options_cover_point(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn bins_or_options_set_covergroup(s: Span) -> IResult { let (s, a) = opt(wildcard)(s)?; let (s, b) = bins_keyword(s)?; @@ -827,7 +827,7 @@ pub fn bins_or_options_set_covergroup(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn bins_or_options_trans_list(s: Span) -> IResult { let (s, a) = opt(wildcard)(s)?; let (s, b) = bins_keyword(s)?; @@ -844,7 +844,7 @@ pub fn bins_or_options_trans_list(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn bins_or_options_default(s: Span) -> IResult { let (s, a) = bins_keyword(s)?; let (s, b) = bin_identifier(s)?; @@ -860,7 +860,7 @@ pub fn bins_or_options_default(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn bins_or_options_default_sequence(s: Span) -> IResult { let (s, a) = bins_keyword(s)?; let (s, b) = bin_identifier(s)?; @@ -876,7 +876,7 @@ pub fn bins_or_options_default_sequence(s: Span) -> IResult )) } -#[trace] +#[parser] pub fn bins_keyword(s: Span) -> IResult { alt(( map(symbol("bins"), |x| BinsKeyword::Bins(x)), @@ -885,19 +885,19 @@ pub fn bins_keyword(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn trans_list(s: Span) -> IResult { let (s, a) = list(symbol(","), paren(trans_set))(s)?; Ok((s, TransList { nodes: (a,) })) } -#[trace] +#[parser] pub fn trans_set(s: Span) -> IResult { let (s, a) = list(symbol("=>"), trans_range_list)(s)?; Ok((s, TransSet { nodes: (a,) })) } -#[trace] +#[parser] pub fn trans_range_list(s: Span) -> IResult { alt(( map(trans_item, |x| TransRangeList::TransItem(x)), @@ -907,7 +907,7 @@ pub fn trans_range_list(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn trans_range_list_asterisk(s: Span) -> IResult { let (s, a) = trans_item(s)?; let (s, b) = bracket(pair(symbol("*"), repeat_range))(s)?; @@ -917,7 +917,7 @@ pub fn trans_range_list_asterisk(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn trans_range_list_arrow(s: Span) -> IResult { let (s, a) = trans_item(s)?; let (s, b) = bracket(pair(symbol("->"), repeat_range))(s)?; @@ -927,7 +927,7 @@ pub fn trans_range_list_arrow(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn trans_range_list_equal(s: Span) -> IResult { let (s, a) = trans_item(s)?; let (s, b) = bracket(pair(symbol("="), repeat_range))(s)?; @@ -937,13 +937,13 @@ pub fn trans_range_list_equal(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn trans_item(s: Span) -> IResult { let (s, a) = covergroup_range_list(s)?; Ok((s, TransItem { nodes: (a,) })) } -#[trace] +#[parser] pub fn repeat_range(s: Span) -> IResult { alt(( map(covergroup_expression, |x| { @@ -953,7 +953,7 @@ pub fn repeat_range(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn repeat_range_binary(s: Span) -> IResult { let (s, a) = covergroup_expression(s)?; let (s, b) = symbol(":")(s)?; @@ -964,7 +964,7 @@ pub fn repeat_range_binary(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn cover_cross(s: Span) -> IResult { let (s, a) = opt(pair(cross_identifier, symbol(":")))(s)?; let (s, b) = symbol("cross")(s)?; @@ -979,14 +979,14 @@ pub fn cover_cross(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn list_of_cross_items(s: Span) -> IResult { let (s, a) = cross_item(s)?; let (s, b) = list(symbol(","), cross_item)(s)?; Ok((s, ListOfCrossItems { nodes: (a, b) })) } -#[trace] +#[parser] pub fn cross_item(s: Span) -> IResult { alt(( map(cover_point_identifier, |x| { @@ -996,7 +996,7 @@ pub fn cross_item(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn cross_body(s: Span) -> IResult { alt(( cross_body_non_empty, @@ -1004,13 +1004,13 @@ pub fn cross_body(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn cross_body_non_empty(s: Span) -> IResult { let (s, a) = brace(many0(pair(cross_body_item, symbol(";"))))(s)?; Ok((s, CrossBody::NonEmpty(CrossBodyNonEmpty { nodes: (a,) }))) } -#[trace] +#[parser] pub fn cross_body_item(s: Span) -> IResult { alt(( map(function_declaration, |x| { @@ -1022,7 +1022,7 @@ pub fn cross_body_item(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn bins_selection_or_option(s: Span) -> IResult { alt(( bins_selection_or_option_coverage, @@ -1030,7 +1030,7 @@ pub fn bins_selection_or_option(s: Span) -> IResult ))(s) } -#[trace] +#[parser] pub fn bins_selection_or_option_coverage(s: Span) -> IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = coverage_option(s)?; @@ -1040,7 +1040,7 @@ pub fn bins_selection_or_option_coverage(s: Span) -> IResult IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = bins_selection(s)?; @@ -1050,7 +1050,7 @@ pub fn bins_selection_or_option_bins(s: Span) -> IResult IResult { let (s, a) = bins_keyword(s)?; let (s, b) = bin_identifier(s)?; @@ -1065,7 +1065,7 @@ pub fn bins_selection(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn select_expression(s: Span) -> IResult { alt(( map(select_condition, |x| SelectExpression::SelectCondition(x)), @@ -1079,7 +1079,7 @@ pub fn select_expression(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn select_expression_not(s: Span) -> IResult { let (s, a) = symbol("!")(s)?; let (s, b) = select_condition(s)?; @@ -1089,7 +1089,7 @@ pub fn select_expression_not(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn select_expression_and(s: Span) -> IResult { let (s, a) = select_expression(s)?; let (s, b) = symbol("&&")(s)?; @@ -1100,7 +1100,7 @@ pub fn select_expression_and(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn select_expression_or(s: Span) -> IResult { let (s, a) = select_expression(s)?; let (s, b) = symbol("||")(s)?; @@ -1111,7 +1111,7 @@ pub fn select_expression_or(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn select_expression_paren(s: Span) -> IResult { let (s, a) = paren(select_expression)(s)?; Ok(( @@ -1120,7 +1120,7 @@ pub fn select_expression_paren(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn select_expression_with(s: Span) -> IResult { let (s, a) = select_expression(s)?; let (s, b) = symbol("with")(s)?; @@ -1134,7 +1134,7 @@ pub fn select_expression_with(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn select_expression_cross_set(s: Span) -> IResult { let (s, a) = cross_set_expression(s)?; let (s, b) = opt(pair(symbol("matches"), integer_covergroup_expression))(s)?; @@ -1144,7 +1144,7 @@ pub fn select_expression_cross_set(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn select_condition(s: Span) -> IResult { let (s, a) = symbol("binsof")(s)?; let (s, b) = paren(bins_expression)(s)?; @@ -1152,7 +1152,7 @@ pub fn select_condition(s: Span) -> IResult { Ok((s, SelectCondition { nodes: (a, b, c) })) } -#[trace] +#[parser] pub fn bins_expression(s: Span) -> IResult { alt(( map(variable_identifier, |x| { @@ -1162,7 +1162,7 @@ pub fn bins_expression(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn bins_expression_cover_point(s: Span) -> IResult { let (s, a) = cover_point_identifier(s)?; let (s, b) = opt(pair(symbol("."), bin_identifier))(s)?; @@ -1172,13 +1172,13 @@ pub fn bins_expression_cover_point(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn covergroup_range_list(s: Span) -> IResult { let (s, a) = list(symbol(","), covergroup_value_range)(s)?; Ok((s, CovergroupRangeList { nodes: (a,) })) } -#[trace] +#[parser] pub fn covergroup_value_range(s: Span) -> IResult { alt(( map(covergroup_expression, |x| { @@ -1188,7 +1188,7 @@ pub fn covergroup_value_range(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn covergroup_value_range_binary(s: Span) -> IResult { let (s, a) = bracket(triple( covergroup_expression, @@ -1201,31 +1201,31 @@ pub fn covergroup_value_range_binary(s: Span) -> IResult IResult { let (s, a) = covergroup_expression(s)?; Ok((s, WithCovergroupExpression { nodes: (a,) })) } -#[trace] +#[parser] pub fn set_covergroup_expression(s: Span) -> IResult { let (s, a) = covergroup_expression(s)?; Ok((s, SetCovergroupExpression { nodes: (a,) })) } -#[trace] +#[parser] pub fn integer_covergroup_expression(s: Span) -> IResult { let (s, a) = covergroup_expression(s)?; Ok((s, IntegerCovergroupExpression { nodes: (a,) })) } -#[trace] +#[parser] pub fn cross_set_expression(s: Span) -> IResult { let (s, a) = covergroup_expression(s)?; Ok((s, CrossSetExpression { nodes: (a,) })) } -#[trace] +#[parser] pub fn covergroup_expression(s: Span) -> IResult { let (s, a) = expression(s)?; Ok((s, CovergroupExpression { nodes: (a,) })) diff --git a/src/parser/declarations/declaration_assignments.rs b/src/parser/declarations/declaration_assignments.rs index 70ef49d..41d9665 100644 --- a/src/parser/declarations/declaration_assignments.rs +++ b/src/parser/declarations/declaration_assignments.rs @@ -174,7 +174,7 @@ pub struct DynamicArrayNew<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn defparam_assignment(s: Span) -> IResult { let (s, a) = hierarchical_parameter_identifier(s)?; let (s, b) = symbol("=")(s)?; @@ -182,7 +182,7 @@ pub fn defparam_assignment(s: Span) -> IResult { Ok((s, DefparamAssignment { nodes: (a, b, c) })) } -#[trace] +#[parser] pub fn net_decl_assignment(s: Span) -> IResult { let (s, a) = net_identifier(s)?; let (s, b) = many0(unpacked_dimension)(s)?; @@ -190,7 +190,7 @@ pub fn net_decl_assignment(s: Span) -> IResult { Ok((s, NetDeclAssignment { nodes: (a, b, c) })) } -#[trace] +#[parser] pub fn param_assignment(s: Span) -> IResult { let (s, a) = parameter_identifier(s)?; let (s, b) = many0(unpacked_dimension)(s)?; @@ -198,7 +198,7 @@ pub fn param_assignment(s: Span) -> IResult { Ok((s, ParamAssignment { nodes: (a, b, c) })) } -#[trace] +#[parser] pub fn specparam_assignment(s: Span) -> IResult { alt(( specparam_assignment_mintypmax, @@ -208,7 +208,7 @@ pub fn specparam_assignment(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn specparam_assignment_mintypmax(s: Span) -> IResult { let (s, a) = specparam_identifier(s)?; let (s, b) = symbol("=")(s)?; @@ -219,14 +219,14 @@ pub fn specparam_assignment_mintypmax(s: Span) -> IResult IResult { let (s, a) = type_identifier(s)?; let (s, b) = opt(pair(symbol("="), data_type))(s)?; Ok((s, TypeAssignment { nodes: (a, b) })) } -#[trace] +#[parser] pub fn pulse_control_specparam(s: Span) -> IResult { alt(( pulse_control_specparam_without_descriptor, @@ -234,7 +234,7 @@ pub fn pulse_control_specparam(s: Span) -> IResult ))(s) } -#[trace] +#[parser] pub fn pulse_control_specparam_without_descriptor(s: Span) -> IResult { let (s, a) = symbol("PATHPULSE$")(s)?; let (s, b) = symbol("=")(s)?; @@ -250,7 +250,7 @@ pub fn pulse_control_specparam_without_descriptor(s: Span) -> IResult IResult { let (s, a) = symbol("PATHPULSE$")(s)?; let (s, b) = specify_input_terminal_descriptor(s)?; @@ -269,25 +269,25 @@ pub fn pulse_control_specparam_with_descriptor(s: Span) -> IResult IResult { let (s, a) = limit_value(s)?; Ok((s, ErrorLimitValue { nodes: (a,) })) } -#[trace] +#[parser] pub fn reject_limit_value(s: Span) -> IResult { let (s, a) = limit_value(s)?; Ok((s, RejectLimitValue { nodes: (a,) })) } -#[trace] +#[parser] pub fn limit_value(s: Span) -> IResult { let (s, a) = constant_mintypmax_expression(s)?; Ok((s, LimitValue { nodes: (a,) })) } -#[trace] +#[parser] pub fn variable_decl_assignment(s: Span) -> IResult { alt(( variable_decl_assignment_variable, @@ -296,7 +296,7 @@ pub fn variable_decl_assignment(s: Span) -> IResult IResult { let (s, a) = variable_identifier(s)?; let (s, b) = many0(variable_dimension)(s)?; @@ -307,7 +307,7 @@ pub fn variable_decl_assignment_variable(s: Span) -> IResult IResult { let (s, a) = dynamic_array_variable_identifier(s)?; let (s, b) = unsized_dimension(s)?; @@ -321,7 +321,7 @@ pub fn variable_decl_assignment_dynamic_array(s: Span) -> IResult IResult { let (s, a) = class_variable_identifier(s)?; let (s, b) = opt(pair(symbol("="), class_new))(s)?; @@ -331,12 +331,12 @@ pub fn variable_decl_assignment_class(s: Span) -> IResult IResult { alt((class_new_argument, class_new_expression))(s) } -#[trace] +#[parser] pub fn class_new_argument(s: Span) -> IResult { let (s, a) = opt(class_scope)(s)?; let (s, b) = symbol("new")(s)?; @@ -344,7 +344,7 @@ pub fn class_new_argument(s: Span) -> IResult { Ok((s, ClassNew::Argument(ClassNewArgument { nodes: (a, b, c) }))) } -#[trace] +#[parser] pub fn class_new_expression(s: Span) -> IResult { let (s, a) = symbol("new")(s)?; let (s, b) = expression(s)?; @@ -354,7 +354,7 @@ pub fn class_new_expression(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn dynamic_array_new(s: Span) -> IResult { let (s, a) = symbol("new")(s)?; let (s, b) = bracket(expression)(s)?; diff --git a/src/parser/declarations/declaration_lists.rs b/src/parser/declarations/declaration_lists.rs index 9c956f0..7692de7 100644 --- a/src/parser/declarations/declaration_lists.rs +++ b/src/parser/declarations/declaration_lists.rs @@ -92,19 +92,19 @@ pub struct ListOfVariablePortIdentifiers<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn list_of_defparam_assignments(s: Span) -> IResult { let (s, a) = list(symbol(","), defparam_assignment)(s)?; Ok((s, ListOfDefparamAssignments { nodes: (a,) })) } -#[trace] +#[parser] pub fn list_of_genvar_identifiers(s: Span) -> IResult { let (s, a) = list(symbol(","), genvar_identifier)(s)?; Ok((s, ListOfGenvarIdentifiers { nodes: (a,) })) } -#[trace] +#[parser] pub fn list_of_interface_identifiers(s: Span) -> IResult { let (s, a) = list( symbol(","), @@ -113,19 +113,19 @@ pub fn list_of_interface_identifiers(s: Span) -> IResult IResult { let (s, a) = list(symbol(","), net_decl_assignment)(s)?; Ok((s, ListOfNetDeclAssignments { nodes: (a,) })) } -#[trace] +#[parser] pub fn list_of_param_assignments(s: Span) -> IResult { let (s, a) = list(symbol(","), param_assignment)(s)?; Ok((s, ListOfParamAssignments { nodes: (a,) })) } -#[trace] +#[parser] pub fn list_of_port_identifiers(s: Span) -> IResult { let (s, a) = list( symbol(","), @@ -134,19 +134,19 @@ pub fn list_of_port_identifiers(s: Span) -> IResult Ok((s, ListOfPortIdentifiers { nodes: (a,) })) } -#[trace] +#[parser] pub fn list_of_udp_port_identifiers(s: Span) -> IResult { let (s, a) = list(symbol(","), port_identifier)(s)?; Ok((s, ListOfUdpPortIdentifiers { nodes: (a,) })) } -#[trace] +#[parser] pub fn list_of_specparam_assignments(s: Span) -> IResult { let (s, a) = list(symbol(","), specparam_assignment)(s)?; Ok((s, ListOfSpecparamAssignments { nodes: (a,) })) } -#[trace] +#[parser] pub fn list_of_tf_variable_identifiers(s: Span) -> IResult { let (s, a) = list( symbol(","), @@ -159,19 +159,19 @@ pub fn list_of_tf_variable_identifiers(s: Span) -> IResult IResult { let (s, a) = list(symbol(","), type_assignment)(s)?; Ok((s, ListOfTypeAssignments { nodes: (a,) })) } -#[trace] +#[parser] pub fn list_of_variable_decl_assignments(s: Span) -> IResult { let (s, a) = list(symbol(","), variable_decl_assignment)(s)?; Ok((s, ListOfVariableDeclAssignments { nodes: (a,) })) } -#[trace] +#[parser] pub fn list_of_variable_identifiers(s: Span) -> IResult { let (s, a) = list( symbol(","), @@ -180,7 +180,7 @@ pub fn list_of_variable_identifiers(s: Span) -> IResult IResult { let (s, a) = list( symbol(","), diff --git a/src/parser/declarations/declaration_ranges.rs b/src/parser/declarations/declaration_ranges.rs index 2defeb0..60fdf03 100644 --- a/src/parser/declarations/declaration_ranges.rs +++ b/src/parser/declarations/declaration_ranges.rs @@ -70,12 +70,12 @@ pub struct UnsizedDimension<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn unpacked_dimension(s: Span) -> IResult { alt((unpacked_dimension_range, unpacked_dimension_expression))(s) } -#[trace] +#[parser] pub fn unpacked_dimension_range(s: Span) -> IResult { let (s, a) = bracket(constant_range)(s)?; Ok(( @@ -84,7 +84,7 @@ pub fn unpacked_dimension_range(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn unpacked_dimension_expression(s: Span) -> IResult { let (s, a) = bracket(constant_expression)(s)?; Ok(( @@ -93,7 +93,7 @@ pub fn unpacked_dimension_expression(s: Span) -> IResult IResult { alt(( packed_dimension_range, @@ -101,7 +101,7 @@ pub fn packed_dimension(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn packed_dimension_range(s: Span) -> IResult { let (s, a) = bracket(constant_range)(s)?; Ok(( @@ -110,7 +110,7 @@ pub fn packed_dimension_range(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn associative_dimension(s: Span) -> IResult { alt(( associative_dimension_data_type, @@ -118,7 +118,7 @@ pub fn associative_dimension(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn associative_dimension_data_type(s: Span) -> IResult { let (s, a) = bracket(data_type)(s)?; Ok(( @@ -127,7 +127,7 @@ pub fn associative_dimension_data_type(s: Span) -> IResult IResult { let (s, a) = bracket(symbol("*"))(s)?; Ok(( @@ -136,7 +136,7 @@ pub fn associative_dimension_asterisk(s: Span) -> IResult IResult { alt(( map(unsized_dimension, |x| { @@ -152,7 +152,7 @@ pub fn variable_dimension(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn queue_dimension(s: Span) -> IResult { let (s, a) = bracket(pair( symbol("$"), @@ -161,7 +161,7 @@ pub fn queue_dimension(s: Span) -> IResult { Ok((s, QueueDimension { nodes: (a,) })) } -#[trace] +#[parser] pub fn unsized_dimension(s: Span) -> IResult { let (s, a) = symbol("[")(s)?; let (s, b) = symbol("]")(s)?; diff --git a/src/parser/declarations/delays.rs b/src/parser/declarations/delays.rs index e031771..49fc130 100644 --- a/src/parser/declarations/delays.rs +++ b/src/parser/declarations/delays.rs @@ -72,19 +72,19 @@ pub enum DelayValue<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn delay3(s: Span) -> IResult { alt((delay3_single, delay3_mintypmax))(s) } -#[trace] +#[parser] pub fn delay3_single(s: Span) -> IResult { let (s, a) = symbol("#")(s)?; let (s, b) = delay_value(s)?; Ok((s, Delay3::Single(Delay3Single { nodes: (a, b) }))) } -#[trace] +#[parser] pub fn delay3_mintypmax(s: Span) -> IResult { let (s, a) = symbol("#")(s)?; let (s, b) = paren(pair( @@ -98,19 +98,19 @@ pub fn delay3_mintypmax(s: Span) -> IResult { Ok((s, Delay3::Mintypmax(Delay3Mintypmax { nodes: (a, b) }))) } -#[trace] +#[parser] pub fn delay2(s: Span) -> IResult { alt((delay2_single, delay2_mintypmax))(s) } -#[trace] +#[parser] pub fn delay2_single(s: Span) -> IResult { let (s, a) = symbol("#")(s)?; let (s, b) = delay_value(s)?; Ok((s, Delay2::Single(Delay2Single { nodes: (a, b) }))) } -#[trace] +#[parser] pub fn delay2_mintypmax(s: Span) -> IResult { let (s, a) = symbol("#")(s)?; let (s, b) = paren(pair( @@ -120,7 +120,7 @@ pub fn delay2_mintypmax(s: Span) -> IResult { Ok((s, Delay2::Mintypmax(Delay2Mintypmax { nodes: (a, b) }))) } -#[trace] +#[parser] pub fn delay_value(s: Span) -> IResult { alt(( map(unsigned_number, |x| DelayValue::UnsignedNumber(x)), diff --git a/src/parser/declarations/function_declarations.rs b/src/parser/declarations/function_declarations.rs index 418c7df..8ce24dd 100644 --- a/src/parser/declarations/function_declarations.rs +++ b/src/parser/declarations/function_declarations.rs @@ -159,7 +159,7 @@ pub struct DpiTaskProto<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn function_data_type_or_implicit(s: Span) -> IResult { alt(( map(data_type_or_void, |x| { @@ -171,7 +171,7 @@ pub fn function_data_type_or_implicit(s: Span) -> IResult IResult { let (s, a) = symbol("function")(s)?; let (s, b) = opt(lifetime)(s)?; @@ -179,7 +179,7 @@ pub fn function_declaration(s: Span) -> IResult { Ok((s, FunctionDeclaration { nodes: (a, b, c) })) } -#[trace] +#[parser] pub fn function_body_declaration(s: Span) -> IResult { alt(( function_body_declaration_without_port, @@ -187,7 +187,7 @@ pub fn function_body_declaration(s: Span) -> IResult IResult { let (s, a) = function_data_type_or_implicit(s)?; let (s, b) = opt(interface_identifier_or_class_scope)(s)?; @@ -205,7 +205,7 @@ pub fn function_body_declaration_without_port(s: Span) -> IResult IResult { let (s, a) = function_data_type_or_implicit(s)?; let (s, b) = opt(interface_identifier_or_class_scope)(s)?; @@ -224,7 +224,7 @@ pub fn function_body_declaration_with_port(s: Span) -> IResult IResult { @@ -238,7 +238,7 @@ pub fn interface_identifier_or_class_scope( ))(s) } -#[trace] +#[parser] pub fn function_prototype(s: Span) -> IResult { let (s, a) = symbol("function")(s)?; let (s, b) = data_type_or_void(s)?; @@ -252,7 +252,7 @@ pub fn function_prototype(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn dpi_import_export(s: Span) -> IResult { alt(( dpi_import_export_import_function, @@ -262,7 +262,7 @@ pub fn dpi_import_export(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn dpi_import_export_import_function(s: Span) -> IResult { let (s, a) = symbol("import")(s)?; let (s, b) = dpi_spec_string(s)?; @@ -278,7 +278,7 @@ pub fn dpi_import_export_import_function(s: Span) -> IResult IResult { let (s, a) = symbol("import")(s)?; let (s, b) = dpi_spec_string(s)?; @@ -294,7 +294,7 @@ pub fn dpi_import_export_import_task(s: Span) -> IResult )) } -#[trace] +#[parser] pub fn dpi_import_export_export_function(s: Span) -> IResult { let (s, a) = symbol("export")(s)?; let (s, b) = dpi_spec_string(s)?; @@ -310,7 +310,7 @@ pub fn dpi_import_export_export_function(s: Span) -> IResult IResult { let (s, a) = symbol("export")(s)?; let (s, b) = dpi_spec_string(s)?; @@ -326,7 +326,7 @@ pub fn dpi_import_export_export_task(s: Span) -> IResult )) } -#[trace] +#[parser] pub fn dpi_spec_string(s: Span) -> IResult { alt(( map(symbol("DPI-C"), |x| DpiSpecString::DpiC(x)), @@ -334,7 +334,7 @@ pub fn dpi_spec_string(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn dpi_function_import_property(s: Span) -> IResult { alt(( map(symbol("context"), |x| DpiFunctionImportProperty::Context(x)), @@ -342,19 +342,19 @@ pub fn dpi_function_import_property(s: Span) -> IResult IResult { let (s, a) = symbol("context")(s)?; Ok((s, DpiTaskImportProperty::Context(a))) } -#[trace] +#[parser] pub fn dpi_function_proto(s: Span) -> IResult { let (s, a) = function_prototype(s)?; Ok((s, DpiFunctionProto { nodes: (a,) })) } -#[trace] +#[parser] pub fn dpi_task_proto(s: Span) -> IResult { let (s, a) = task_prototype(s)?; Ok((s, DpiTaskProto { nodes: (a,) })) diff --git a/src/parser/declarations/interface_declarations.rs b/src/parser/declarations/interface_declarations.rs index 642baf3..60a9914 100644 --- a/src/parser/declarations/interface_declarations.rs +++ b/src/parser/declarations/interface_declarations.rs @@ -94,7 +94,7 @@ pub enum ImportExport<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn modport_declaration(s: Span) -> IResult { let (s, a) = symbol("modport")(s)?; let (s, b) = list(symbol(","), modport_item)(s)?; @@ -102,14 +102,14 @@ pub fn modport_declaration(s: Span) -> IResult { Ok((s, ModportDeclaration { nodes: (a, b, c) })) } -#[trace] +#[parser] pub fn modport_item(s: Span) -> IResult { let (s, a) = modport_identifier(s)?; let (s, b) = paren(list(symbol(","), modport_ports_declaration))(s)?; Ok((s, ModportItem { nodes: (a, b) })) } -#[trace] +#[parser] pub fn modport_ports_declaration(s: Span) -> IResult { alt(( modport_ports_declaration_simple, @@ -118,7 +118,7 @@ pub fn modport_ports_declaration(s: Span) -> IResult IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = modport_simple_ports_declaration(s)?; @@ -128,7 +128,7 @@ pub fn modport_ports_declaration_simple(s: Span) -> IResult IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = modport_tf_ports_declaration(s)?; @@ -138,7 +138,7 @@ pub fn modport_ports_declaration_tf(s: Span) -> IResult IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = modport_clocking_declaration(s)?; @@ -148,26 +148,26 @@ pub fn modport_ports_declaration_clocking(s: Span) -> IResult IResult { let (s, a) = symbol("clocking")(s)?; let (s, b) = clocking_identifier(s)?; Ok((s, ModportClockingDeclaration { nodes: (a, b) })) } -#[trace] +#[parser] pub fn modport_simple_ports_declaration(s: Span) -> IResult { let (s, a) = port_direction(s)?; let (s, b) = list(symbol(","), modport_simple_port)(s)?; Ok((s, ModportSimplePortsDeclaration { nodes: (a, b) })) } -#[trace] +#[parser] pub fn modport_simple_port(s: Span) -> IResult { alt((modport_simple_port_ordered, modport_simple_port_named))(s) } -#[trace] +#[parser] pub fn modport_simple_port_ordered(s: Span) -> IResult { let (s, a) = port_identifier(s)?; Ok(( @@ -176,7 +176,7 @@ pub fn modport_simple_port_ordered(s: Span) -> IResult )) } -#[trace] +#[parser] pub fn modport_simple_port_named(s: Span) -> IResult { let (s, a) = symbol(".")(s)?; let (s, b) = port_identifier(s)?; @@ -187,14 +187,14 @@ pub fn modport_simple_port_named(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn modport_tf_ports_declaration(s: Span) -> IResult { let (s, a) = import_export(s)?; let (s, b) = list(symbol(","), modport_tf_port)(s)?; Ok((s, ModportTfPortsDeclaration { nodes: (a, b) })) } -#[trace] +#[parser] pub fn modport_tf_port(s: Span) -> IResult { alt(( map(method_prototype, |x| ModportTfPort::MethodPrototype(x)), @@ -202,7 +202,7 @@ pub fn modport_tf_port(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn import_export(s: Span) -> IResult { alt(( map(symbol("import"), |x| ImportExport::Import(x)), diff --git a/src/parser/declarations/let_declarations.rs b/src/parser/declarations/let_declarations.rs index cb5c5ab..36b14c0 100644 --- a/src/parser/declarations/let_declarations.rs +++ b/src/parser/declarations/let_declarations.rs @@ -96,7 +96,7 @@ pub struct LetActualArg<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn let_declaration(s: Span) -> IResult { let (s, a) = symbol("let")(s)?; let (s, b) = let_identifier(s)?; @@ -112,19 +112,19 @@ pub fn let_declaration(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn let_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, LetIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn let_port_list(s: Span) -> IResult { let (s, a) = list(symbol(","), let_port_item)(s)?; Ok((s, LetPortList { nodes: (a,) })) } -#[trace] +#[parser] pub fn let_port_item(s: Span) -> IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = let_formal_type(s)?; @@ -139,7 +139,7 @@ pub fn let_port_item(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn let_formal_type(s: Span) -> IResult { alt(( map(data_type_or_implicit, |x| { @@ -149,7 +149,7 @@ pub fn let_formal_type(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn let_expression(s: Span) -> IResult { let (s, a) = opt(package_scope)(s)?; let (s, b) = let_identifier(s)?; @@ -157,12 +157,12 @@ pub fn let_expression(s: Span) -> IResult { Ok((s, LetExpression { nodes: (a, b, c) })) } -#[trace] +#[parser] pub fn let_list_of_arguments(s: Span) -> IResult { alt((let_list_of_arguments_ordered, let_list_of_arguments_named))(s) } -#[trace] +#[parser] pub fn let_list_of_arguments_ordered(s: Span) -> IResult { let (s, a) = list(symbol(","), opt(let_actual_arg))(s)?; let (s, b) = many0(tuple(( @@ -177,7 +177,7 @@ pub fn let_list_of_arguments_ordered(s: Span) -> IResult IResult { let (s, a) = list( symbol(","), @@ -189,7 +189,7 @@ pub fn let_list_of_arguments_named(s: Span) -> IResult )) } -#[trace] +#[parser] pub fn let_actual_arg(s: Span) -> IResult { let (s, a) = expression(s)?; Ok((s, LetActualArg { nodes: (a,) })) diff --git a/src/parser/declarations/module_parameter_declarations.rs b/src/parser/declarations/module_parameter_declarations.rs index ab70508..a48d9ab 100644 --- a/src/parser/declarations/module_parameter_declarations.rs +++ b/src/parser/declarations/module_parameter_declarations.rs @@ -58,7 +58,7 @@ pub struct SpecparamDeclaration<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn local_parameter_declaration(s: Span) -> IResult { alt(( local_parameter_declaration_param, @@ -66,7 +66,7 @@ pub fn local_parameter_declaration(s: Span) -> IResult IResult { let (s, a) = symbol("localparam")(s)?; let (s, b) = data_type_or_implicit(s)?; @@ -77,7 +77,7 @@ pub fn local_parameter_declaration_param(s: Span) -> IResult IResult { let (s, a) = symbol("localparam")(s)?; let (s, b) = symbol("type")(s)?; @@ -88,12 +88,12 @@ pub fn local_parameter_declaration_type(s: Span) -> IResult IResult { alt((parameter_declaration_param, parameter_declaration_type))(s) } -#[trace] +#[parser] pub fn parameter_declaration_param(s: Span) -> IResult { let (s, a) = symbol("parameter")(s)?; let (s, b) = data_type_or_implicit(s)?; @@ -104,7 +104,7 @@ pub fn parameter_declaration_param(s: Span) -> IResult IResult { let (s, a) = symbol("parameter")(s)?; let (s, b) = symbol("type")(s)?; @@ -115,7 +115,7 @@ pub fn parameter_declaration_type(s: Span) -> IResult IResult { let (s, a) = symbol("specparam")(s)?; let (s, b) = opt(packed_dimension)(s)?; diff --git a/src/parser/declarations/net_and_variable_types.rs b/src/parser/declarations/net_and_variable_types.rs index 8a04ce5..09f26df 100644 --- a/src/parser/declarations/net_and_variable_types.rs +++ b/src/parser/declarations/net_and_variable_types.rs @@ -297,7 +297,7 @@ pub struct TypeReferenceDataType<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn casting_type(s: Span) -> IResult { alt(( map(simple_type, |x| CastingType::SimpleType(Box::new(x))), @@ -310,7 +310,7 @@ pub fn casting_type(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn data_type(s: Span) -> IResult { alt(( data_type_vector, @@ -331,7 +331,7 @@ pub fn data_type(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn data_type_vector(s: Span) -> IResult { let (s, a) = integer_vector_type(s)?; let (s, b) = opt(signing)(s)?; @@ -339,14 +339,14 @@ pub fn data_type_vector(s: Span) -> IResult { Ok((s, DataType::Vector(DataTypeVector { nodes: (a, b, c) }))) } -#[trace] +#[parser] pub fn data_type_atom(s: Span) -> IResult { let (s, a) = integer_atom_type(s)?; let (s, b) = opt(signing)(s)?; Ok((s, DataType::Atom(DataTypeAtom { nodes: (a, b) }))) } -#[trace] +#[parser] pub fn data_type_union(s: Span) -> IResult { let (s, a) = struct_union(s)?; let (s, b) = opt(pair(packed, opt(signing)))(s)?; @@ -360,13 +360,13 @@ pub fn data_type_union(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn packed(s: Span) -> IResult { let (s, a) = symbol("packed")(s)?; Ok((s, Packed { nodes: (a,) })) } -#[trace] +#[parser] pub fn data_type_enum(s: Span) -> IResult { let (s, a) = symbol("enum")(s)?; let (s, b) = opt(enum_base_type)(s)?; @@ -380,7 +380,7 @@ pub fn data_type_enum(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn data_type_virtual(s: Span) -> IResult { let (s, a) = symbol("virtual")(s)?; let (s, b) = opt(interface)(s)?; @@ -395,13 +395,13 @@ pub fn data_type_virtual(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn interface(s: Span) -> IResult { let (s, a) = symbol("interface")(s)?; Ok((s, Interface { nodes: (a,) })) } -#[trace] +#[parser] pub fn data_type_type(s: Span) -> IResult { let (s, a) = opt(package_scope_or_class_scope)(s)?; let (s, b) = type_identifier(s)?; @@ -409,7 +409,7 @@ pub fn data_type_type(s: Span) -> IResult { Ok((s, DataType::Type(DataTypeType { nodes: (a, b, c) }))) } -#[trace] +#[parser] pub fn data_type_or_implicit(s: Span) -> IResult { alt(( map(data_type, |x| DataTypeOrImplicit::DataType(x)), @@ -419,14 +419,14 @@ pub fn data_type_or_implicit(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn implicit_data_type(s: Span) -> IResult { let (s, a) = opt(signing)(s)?; let (s, b) = many0(packed_dimension)(s)?; Ok((s, ImplicitDataType { nodes: (a, b) })) } -#[trace] +#[parser] pub fn enum_base_type(s: Span) -> IResult { alt(( enum_base_type_atom, @@ -435,14 +435,14 @@ pub fn enum_base_type(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn enum_base_type_atom(s: Span) -> IResult { let (s, a) = integer_atom_type(s)?; let (s, b) = opt(signing)(s)?; Ok((s, EnumBaseType::Atom(EnumBaseTypeAtom { nodes: (a, b) }))) } -#[trace] +#[parser] pub fn enum_base_type_vector(s: Span) -> IResult { let (s, a) = integer_vector_type(s)?; let (s, b) = opt(signing)(s)?; @@ -453,14 +453,14 @@ pub fn enum_base_type_vector(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn enum_base_type_type(s: Span) -> IResult { let (s, a) = type_identifier(s)?; let (s, b) = opt(packed_dimension)(s)?; Ok((s, EnumBaseType::Type(EnumBaseTypeType { nodes: (a, b) }))) } -#[trace] +#[parser] pub fn enum_name_declaration(s: Span) -> IResult { let (s, a) = enum_identifier(s)?; let (s, b) = opt(bracket(pair( @@ -471,14 +471,14 @@ pub fn enum_name_declaration(s: Span) -> IResult { Ok((s, EnumNameDeclaration { nodes: (a, b, c) })) } -#[trace] +#[parser] pub fn class_scope(s: Span) -> IResult { let (s, a) = class_type(s)?; let (s, b) = symbol("::")(s)?; Ok((s, ClassScope { nodes: (a, b) })) } -#[trace] +#[parser] pub fn class_type(s: Span) -> IResult { let (s, a) = ps_class_identifier(s)?; let (s, b) = opt(parameter_value_assignment)(s)?; @@ -490,7 +490,7 @@ pub fn class_type(s: Span) -> IResult { Ok((s, ClassType { nodes: (a, b, c) })) } -#[trace] +#[parser] pub fn integer_type(s: Span) -> IResult { alt(( map(integer_vector_type, |x| IntegerType::IntegerVectorType(x)), @@ -498,7 +498,7 @@ pub fn integer_type(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn integer_atom_type(s: Span) -> IResult { alt(( map(symbol("byte"), |x| IntegerAtomType::Byte(x)), @@ -510,7 +510,7 @@ pub fn integer_atom_type(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn integer_vector_type(s: Span) -> IResult { alt(( map(symbol("bit"), |x| IntegerVectorType::Bit(x)), @@ -519,7 +519,7 @@ pub fn integer_vector_type(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn non_integer_type(s: Span) -> IResult { alt(( map(symbol("shortreal"), |x| NonIntegerType::Shortreal(x)), @@ -528,7 +528,7 @@ pub fn non_integer_type(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn net_type(s: Span) -> IResult { alt(( map(symbol("supply0"), |x| NetType::Supply0(x)), @@ -546,7 +546,7 @@ pub fn net_type(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn net_port_type(s: Span) -> IResult { alt(( net_port_type_data_type, @@ -555,7 +555,7 @@ pub fn net_port_type(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn net_port_type_data_type(s: Span) -> IResult { let (s, a) = opt(net_type)(s)?; let (s, b) = data_type_or_implicit(s)?; @@ -565,7 +565,7 @@ pub fn net_port_type_data_type(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn net_port_type_interconnect(s: Span) -> IResult { let (s, a) = symbol("interconnect")(s)?; let (s, b) = implicit_data_type(s)?; @@ -575,13 +575,13 @@ pub fn net_port_type_interconnect(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn variable_port_type(s: Span) -> IResult { let (s, a) = var_data_type(s)?; Ok((s, VariablePortType { nodes: (a,) })) } -#[trace] +#[parser] pub fn var_data_type(s: Span) -> IResult { alt(( map(data_type, |x| VarDataType::DataType(x)), @@ -589,14 +589,14 @@ pub fn var_data_type(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn var_data_type_var(s: Span) -> IResult { let (s, a) = symbol("var")(s)?; let (s, b) = data_type_or_implicit(s)?; Ok((s, VarDataType::Var(VarDataTypeVar { nodes: (a, b) }))) } -#[trace] +#[parser] pub fn signing(s: Span) -> IResult { alt(( map(symbol("signed"), |x| Signing::Signed(x)), @@ -604,7 +604,7 @@ pub fn signing(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn simple_type(s: Span) -> IResult { alt(( map(integer_type, |x| SimpleType::IntegerType(x)), @@ -616,7 +616,7 @@ pub fn simple_type(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn struct_union_member(s: Span) -> IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = opt(random_qualifier)(s)?; @@ -631,7 +631,7 @@ pub fn struct_union_member(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn data_type_or_void(s: Span) -> IResult { alt(( map(data_type, |x| DataTypeOrVoid::DataType(x)), @@ -639,7 +639,7 @@ pub fn data_type_or_void(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn struct_union(s: Span) -> IResult { alt(( map(symbol("struct"), |x| StructUnion::Struct(x)), @@ -650,12 +650,12 @@ pub fn struct_union(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn type_reference(s: Span) -> IResult { alt((type_reference_expression, type_reference_data_type))(s) } -#[trace] +#[parser] pub fn type_reference_expression(s: Span) -> IResult { let (s, a) = symbol("type")(s)?; let (s, b) = paren(expression)(s)?; @@ -665,7 +665,7 @@ pub fn type_reference_expression(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn type_reference_data_type(s: Span) -> IResult { let (s, a) = symbol("type")(s)?; let (s, b) = paren(data_type)(s)?; diff --git a/src/parser/declarations/port_declarations.rs b/src/parser/declarations/port_declarations.rs index 53363bf..525e0bb 100644 --- a/src/parser/declarations/port_declarations.rs +++ b/src/parser/declarations/port_declarations.rs @@ -72,7 +72,7 @@ pub struct RefDeclaration<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn inout_declaration(s: Span) -> IResult { let (s, a) = symbol("inout")(s)?; let (s, b) = net_port_type(s)?; @@ -80,12 +80,12 @@ pub fn inout_declaration(s: Span) -> IResult { Ok((s, InoutDeclaration { nodes: (a, b, c) })) } -#[trace] +#[parser] pub fn input_declaration(s: Span) -> IResult { alt((input_declaration_net, input_declaration_variable))(s) } -#[trace] +#[parser] pub fn input_declaration_net(s: Span) -> IResult { let (s, a) = symbol("input")(s)?; let (s, b) = net_port_type(s)?; @@ -96,7 +96,7 @@ pub fn input_declaration_net(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn input_declaration_variable(s: Span) -> IResult { let (s, a) = symbol("input")(s)?; let (s, b) = variable_port_type(s)?; @@ -107,12 +107,12 @@ pub fn input_declaration_variable(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn output_declaration(s: Span) -> IResult { alt((output_declaration_net, output_declaration_variable))(s) } -#[trace] +#[parser] pub fn output_declaration_net(s: Span) -> IResult { let (s, a) = symbol("output")(s)?; let (s, b) = net_port_type(s)?; @@ -123,7 +123,7 @@ pub fn output_declaration_net(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn output_declaration_variable(s: Span) -> IResult { let (s, a) = symbol("output")(s)?; let (s, b) = variable_port_type(s)?; @@ -134,7 +134,7 @@ pub fn output_declaration_variable(s: Span) -> IResult )) } -#[trace] +#[parser] pub fn interface_port_declaration(s: Span) -> IResult { let (s, a) = interface_identifier(s)?; let (s, b) = opt(pair(symbol("."), modport_identifier))(s)?; @@ -142,7 +142,7 @@ pub fn interface_port_declaration(s: Span) -> IResult IResult { let (s, a) = symbol("ref")(s)?; let (s, b) = variable_port_type(s)?; diff --git a/src/parser/declarations/strengths.rs b/src/parser/declarations/strengths.rs index b704a50..94822a9 100644 --- a/src/parser/declarations/strengths.rs +++ b/src/parser/declarations/strengths.rs @@ -86,7 +86,7 @@ pub struct ChargeStrengthLarge<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn drive_strength(s: Span) -> IResult { alt(( drive_strength01, @@ -98,7 +98,7 @@ pub fn drive_strength(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn drive_strength01(s: Span) -> IResult { let (s, a) = paren(triple(strength0, symbol(","), strength1))(s)?; Ok(( @@ -107,7 +107,7 @@ pub fn drive_strength01(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn drive_strength10(s: Span) -> IResult { let (s, a) = paren(triple(strength1, symbol(","), strength0))(s)?; Ok(( @@ -116,7 +116,7 @@ pub fn drive_strength10(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn drive_strength0z(s: Span) -> IResult { let (s, a) = paren(triple(strength0, symbol(","), symbol("highz1")))(s)?; Ok(( @@ -125,7 +125,7 @@ pub fn drive_strength0z(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn drive_strength1z(s: Span) -> IResult { let (s, a) = paren(triple(strength1, symbol(","), symbol("highz0")))(s)?; Ok(( @@ -134,7 +134,7 @@ pub fn drive_strength1z(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn drive_strengthz1(s: Span) -> IResult { let (s, a) = paren(triple(symbol("highz0"), symbol(","), strength1))(s)?; Ok(( @@ -143,7 +143,7 @@ pub fn drive_strengthz1(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn drive_strengthz0(s: Span) -> IResult { let (s, a) = paren(triple(symbol("highz1"), symbol(","), strength0))(s)?; Ok(( @@ -152,7 +152,7 @@ pub fn drive_strengthz0(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn strength0(s: Span) -> IResult { alt(( map(symbol("supply0"), |x| Strength0::Supply0(x)), @@ -162,7 +162,7 @@ pub fn strength0(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn strength1(s: Span) -> IResult { alt(( map(symbol("supply1"), |x| Strength1::Supply1(x)), @@ -172,7 +172,7 @@ pub fn strength1(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn charge_strength(s: Span) -> IResult { alt(( charge_strength_small, @@ -181,7 +181,7 @@ pub fn charge_strength(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn charge_strength_small(s: Span) -> IResult { let (s, a) = paren(symbol("small"))(s)?; Ok(( @@ -190,7 +190,7 @@ pub fn charge_strength_small(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn charge_strength_medium(s: Span) -> IResult { let (s, a) = paren(symbol("medium"))(s)?; Ok(( @@ -199,7 +199,7 @@ pub fn charge_strength_medium(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn charge_strength_large(s: Span) -> IResult { let (s, a) = paren(symbol("large"))(s)?; Ok(( diff --git a/src/parser/declarations/task_declarations.rs b/src/parser/declarations/task_declarations.rs index 7359fa3..7841cbe 100644 --- a/src/parser/declarations/task_declarations.rs +++ b/src/parser/declarations/task_declarations.rs @@ -101,7 +101,7 @@ pub struct TaskPrototype<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn task_declaration(s: Span) -> IResult { let (s, a) = symbol("task")(s)?; let (s, b) = opt(lifetime)(s)?; @@ -109,7 +109,7 @@ pub fn task_declaration(s: Span) -> IResult { Ok((s, TaskDeclaration { nodes: (a, b, c) })) } -#[trace] +#[parser] pub fn task_body_declaration(s: Span) -> IResult { alt(( task_body_declaration_without_port, @@ -117,7 +117,7 @@ pub fn task_body_declaration(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn task_body_declaration_without_port(s: Span) -> IResult { let (s, a) = opt(interface_identifier_or_class_scope)(s)?; let (s, b) = task_identifier(s)?; @@ -134,7 +134,7 @@ pub fn task_body_declaration_without_port(s: Span) -> IResult IResult { let (s, a) = opt(interface_identifier_or_class_scope)(s)?; let (s, b) = task_identifier(s)?; @@ -152,7 +152,7 @@ pub fn task_body_declaration_with_port(s: Span) -> IResult IResult { alt(( map(block_item_declaration, |x| { @@ -164,13 +164,13 @@ pub fn tf_item_declaration(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn tf_port_list(s: Span) -> IResult { let (s, a) = list(symbol(","), tf_port_item)(s)?; Ok((s, TfPortList { nodes: (a,) })) } -#[trace] +#[parser] pub fn tf_port_item(s: Span) -> IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = opt(tf_port_direction)(s)?; @@ -189,7 +189,7 @@ pub fn tf_port_item(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn tf_port_direction(s: Span) -> IResult { alt(( map(port_direction, |x| TfPortDirection::PortDirection(x)), @@ -199,7 +199,7 @@ pub fn tf_port_direction(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn tf_port_declaration(s: Span) -> IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = tf_port_direction(s)?; @@ -215,7 +215,7 @@ pub fn tf_port_declaration(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn task_prototype(s: Span) -> IResult { let (s, a) = symbol("task")(s)?; let (s, b) = task_identifier(s)?; diff --git a/src/parser/declarations/type_declarations.rs b/src/parser/declarations/type_declarations.rs index dcb1102..104b069 100644 --- a/src/parser/declarations/type_declarations.rs +++ b/src/parser/declarations/type_declarations.rs @@ -228,7 +228,7 @@ pub enum Lifetime<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn data_declaration(s: Span) -> IResult { alt(( data_declaration_variable, @@ -242,7 +242,7 @@ pub fn data_declaration(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn data_declaration_variable(s: Span) -> IResult { let (s, a) = opt(r#const)(s)?; let (s, b) = opt(var)(s)?; @@ -258,13 +258,13 @@ pub fn data_declaration_variable(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn r#const(s: Span) -> IResult { let (s, a) = symbol("const")(s)?; Ok((s, Const { nodes: (a,) })) } -#[trace] +#[parser] pub fn package_import_declaration(s: Span) -> IResult { let (s, a) = symbol("import")(s)?; let (s, b) = list(symbol(","), package_import_item)(s)?; @@ -272,12 +272,12 @@ pub fn package_import_declaration(s: Span) -> IResult IResult { alt((package_import_item_identifier, package_import_item_asterisk))(s) } -#[trace] +#[parser] pub fn package_import_item_identifier(s: Span) -> IResult { let (s, a) = package_identifier(s)?; let (s, b) = symbol("::")(s)?; @@ -288,7 +288,7 @@ pub fn package_import_item_identifier(s: Span) -> IResult IResult { let (s, a) = package_identifier(s)?; let (s, b) = symbol("::")(s)?; @@ -299,7 +299,7 @@ pub fn package_import_item_asterisk(s: Span) -> IResult )) } -#[trace] +#[parser] pub fn package_export_declaration(s: Span) -> IResult { alt(( package_export_declaration_asterisk, @@ -307,7 +307,7 @@ pub fn package_export_declaration(s: Span) -> IResult IResult { let (s, a) = symbol("export")(s)?; let (s, b) = symbol("*::*")(s)?; @@ -318,7 +318,7 @@ pub fn package_export_declaration_asterisk(s: Span) -> IResult IResult { let (s, a) = symbol("export")(s)?; let (s, b) = list(symbol(","), package_import_item)(s)?; @@ -329,7 +329,7 @@ pub fn package_export_declaration_item(s: Span) -> IResult IResult { let (s, a) = symbol("genvar")(s)?; let (s, b) = list_of_genvar_identifiers(s)?; @@ -337,7 +337,7 @@ pub fn genvar_declaration(s: Span) -> IResult { Ok((s, GenvarDeclaration { nodes: (a, b, c) })) } -#[trace] +#[parser] pub fn net_declaration(s: Span) -> IResult { alt(( net_declaration_net_type, @@ -346,7 +346,7 @@ pub fn net_declaration(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn net_declaration_net_type(s: Span) -> IResult { let (s, a) = net_type(s)?; let (s, b) = opt(strength)(s)?; @@ -363,7 +363,7 @@ pub fn net_declaration_net_type(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn strength(s: Span) -> IResult { alt(( map(drive_strength, |x| Strength::Drive(x)), @@ -371,7 +371,7 @@ pub fn strength(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn vector_scalar(s: Span) -> IResult { alt(( map(symbol("vectored"), |x| VectorScalar::Vectored(x)), @@ -379,7 +379,7 @@ pub fn vector_scalar(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn net_declaration_net_type_identifier(s: Span) -> IResult { let (s, a) = net_type_identifier(s)?; let (s, b) = opt(delay_control)(s)?; @@ -393,7 +393,7 @@ pub fn net_declaration_net_type_identifier(s: Span) -> IResult IResult { let (s, a) = symbol("interconnect")(s)?; let (s, b) = implicit_data_type(s)?; @@ -414,7 +414,7 @@ pub fn net_declaration_interconnect(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn type_declaration(s: Span) -> IResult { alt(( type_declaration_data_type, @@ -423,7 +423,7 @@ pub fn type_declaration(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn type_declaration_data_type(s: Span) -> IResult { let (s, a) = symbol("typedef")(s)?; let (s, b) = data_type(s)?; @@ -438,7 +438,7 @@ pub fn type_declaration_data_type(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn type_declaration_interface(s: Span) -> IResult { let (s, a) = symbol("typedef")(s)?; let (s, b) = interface_instance_identifier(s)?; @@ -455,7 +455,7 @@ pub fn type_declaration_interface(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn type_declaration_reserved(s: Span) -> IResult { let (s, a) = symbol("typedef")(s)?; let (s, b) = type_declaration_keyword(s)?; @@ -469,7 +469,7 @@ pub fn type_declaration_reserved(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn type_declaration_keyword(s: Span) -> IResult { alt(( map(symbol("enum"), |x| TypeDeclarationKeyword::Enum(x)), @@ -482,7 +482,7 @@ pub fn type_declaration_keyword(s: Span) -> IResult IResult { alt(( net_type_declaration_data_type, @@ -490,7 +490,7 @@ pub fn net_type_declaration(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn net_type_declaration_data_type(s: Span) -> IResult { let (s, a) = symbol("nettype")(s)?; let (s, b) = data_type(s)?; @@ -509,7 +509,7 @@ pub fn net_type_declaration_data_type(s: Span) -> IResult IResult { let (s, a) = symbol("nettype")(s)?; let (s, b) = opt(package_scope_or_class_scope)(s)?; @@ -524,7 +524,7 @@ pub fn net_type_declaration_net_type(s: Span) -> IResult IResult { alt(( map(symbol("static"), |x| Lifetime::Static(x)), diff --git a/src/parser/expressions/concatenations.rs b/src/parser/expressions/concatenations.rs index 27e8bc4..77be227 100644 --- a/src/parser/expressions/concatenations.rs +++ b/src/parser/expressions/concatenations.rs @@ -105,31 +105,31 @@ pub struct EmptyUnpackedArrayConcatenation<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn concatenation(s: Span) -> IResult { let (s, a) = brace(list(symbol(","), expression))(s)?; Ok((s, Concatenation { nodes: (a,) })) } -#[trace] +#[parser] pub fn constant_concatenation(s: Span) -> IResult { let (s, a) = brace(list(symbol(","), constant_expression))(s)?; Ok((s, ConstantConcatenation { nodes: (a,) })) } -#[trace] +#[parser] pub fn constant_multiple_concatenation(s: Span) -> IResult { let (s, a) = brace(pair(constant_expression, constant_concatenation))(s)?; Ok((s, ConstantMultipleConcatenation { nodes: (a,) })) } -#[trace] +#[parser] pub fn module_path_concatenation(s: Span) -> IResult { let (s, a) = brace(list(symbol(","), module_path_expression))(s)?; Ok((s, ModulePathConcatenation { nodes: (a,) })) } -#[trace] +#[parser] pub fn module_path_multiple_concatenation( s: Span, ) -> IResult { @@ -137,13 +137,13 @@ pub fn module_path_multiple_concatenation( Ok((s, ModulePathMultipleConcatenation { nodes: (a,) })) } -#[trace] +#[parser] pub fn multiple_concatenation(s: Span) -> IResult { let (s, a) = brace(pair(expression, concatenation))(s)?; Ok((s, MultipleConcatenation { nodes: (a,) })) } -#[trace] +#[parser] pub fn streaming_concatenation(s: Span) -> IResult { let (s, a) = brace(triple( stream_operator, @@ -153,7 +153,7 @@ pub fn streaming_concatenation(s: Span) -> IResult Ok((s, StreamingConcatenation { nodes: (a,) })) } -#[trace] +#[parser] pub fn stream_operator(s: Span) -> IResult { alt(( map(symbol(">>"), |x| StreamOperator { nodes: (x,) }), @@ -161,7 +161,7 @@ pub fn stream_operator(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn slice_size(s: Span) -> IResult { alt(( map(simple_type, |x| SliceSize::SimpleType(x)), @@ -169,20 +169,20 @@ pub fn slice_size(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn stream_concatenation(s: Span) -> IResult { let (s, a) = brace(list(symbol(","), stream_expression))(s)?; Ok((s, StreamConcatenation { nodes: (a,) })) } -#[trace] +#[parser] pub fn stream_expression(s: Span) -> IResult { let (s, a) = expression(s)?; let (s, b) = opt(pair(symbol("with"), bracket(array_range_expression)))(s)?; Ok((s, StreamExpression { nodes: (a, b) })) } -#[trace] +#[parser] pub fn array_range_expression(s: Span) -> IResult { alt(( map(expression, |x| ArrayRangeExpression::Expression(x)), @@ -192,7 +192,7 @@ pub fn array_range_expression(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn array_range_expression_colon(s: Span) -> IResult { let (s, a) = expression(s)?; let (s, b) = symbol(":")(s)?; @@ -203,7 +203,7 @@ pub fn array_range_expression_colon(s: Span) -> IResult IResult { let (s, a) = expression(s)?; let (s, b) = symbol("+:")(s)?; @@ -214,7 +214,7 @@ pub fn array_range_expression_plus_colon(s: Span) -> IResult IResult { let (s, a) = expression(s)?; let (s, b) = symbol("-:")(s)?; @@ -225,7 +225,7 @@ pub fn array_range_expression_minus_colon(s: Span) -> IResult IResult { diff --git a/src/parser/expressions/expression_leftside_values.rs b/src/parser/expressions/expression_leftside_values.rs index 2e1a3c8..9d86e0a 100644 --- a/src/parser/expressions/expression_leftside_values.rs +++ b/src/parser/expressions/expression_leftside_values.rs @@ -72,12 +72,12 @@ pub struct NonrangeVariableLvalue<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn net_lvalue(s: Span) -> IResult { alt((net_lvalue_identifier, net_lvalue_lvalue, net_lvalue_pattern))(s) } -#[trace] +#[parser] pub fn net_lvalue_identifier(s: Span) -> IResult { let (s, a) = ps_or_hierarchical_net_identifier(s)?; let (s, b) = constant_select(s)?; @@ -87,7 +87,7 @@ pub fn net_lvalue_identifier(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn net_lvalue_pattern(s: Span) -> IResult { let (s, a) = opt(assignment_pattern_expression_type)(s)?; let (s, b) = assignment_pattern_net_lvalue(s)?; @@ -97,7 +97,7 @@ pub fn net_lvalue_pattern(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn net_lvalue_lvalue(s: Span) -> IResult { let (s, a) = brace(list(symbol(","), net_lvalue))(s)?; Ok(( @@ -106,7 +106,7 @@ pub fn net_lvalue_lvalue(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn variable_lvalue(s: Span) -> IResult { alt(( variable_lvalue_identifier, @@ -118,7 +118,7 @@ pub fn variable_lvalue(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn variable_lvalue_identifier(s: Span) -> IResult { let (s, a) = opt(implicit_class_handle_or_package_scope)(s)?; let (s, b) = hierarchical_variable_identifier(s)?; @@ -129,7 +129,7 @@ pub fn variable_lvalue_identifier(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn variable_lvalue_pattern(s: Span) -> IResult { let (s, a) = opt(assignment_pattern_expression_type)(s)?; let (s, b) = assignment_pattern_variable_lvalue(s)?; @@ -139,7 +139,7 @@ pub fn variable_lvalue_pattern(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn variable_lvalue_lvalue(s: Span) -> IResult { let (s, a) = brace(list(symbol(","), variable_lvalue))(s)?; Ok(( @@ -148,7 +148,7 @@ pub fn variable_lvalue_lvalue(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn nonrange_variable_lvalue(s: Span) -> IResult { let (s, a) = opt(implicit_class_handle_or_package_scope)(s)?; let (s, b) = hierarchical_variable_identifier(s)?; @@ -179,7 +179,9 @@ mod tests { #[test] fn test_nonrange_variable_lvalue() { parser_test!(nonrange_variable_lvalue, "A", Ok((_, _))); - parser_test!(nonrange_variable_lvalue, "A[][2][3]", Ok((_, _))); + parser_test!(nonrange_variable_lvalue, "A[1][2][3]", Ok((_, _))); + //TODO + //parser_test!(nonrange_variable_lvalue, "A[][2][3]", Ok((_, _))); //parser_test!(nonrange_variable_lvalue, "A[][]", Ok((_, _))); } } diff --git a/src/parser/expressions/expressions.rs b/src/parser/expressions/expressions.rs index 43c0bb5..e5e34a4 100644 --- a/src/parser/expressions/expressions.rs +++ b/src/parser/expressions/expressions.rs @@ -279,12 +279,12 @@ pub struct GenvarExpression<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn inc_or_dec_expression(s: Span) -> IResult { alt((inc_or_dec_expression_prefix, inc_or_dec_expression_suffix))(s) } -#[trace] +#[parser] pub fn inc_or_dec_expression_prefix(s: Span) -> IResult { let (s, a) = inc_or_dec_operator(s)?; let (s, b) = many0(attribute_instance)(s)?; @@ -295,7 +295,7 @@ pub fn inc_or_dec_expression_prefix(s: Span) -> IResult IResult { let (s, a) = variable_lvalue(s)?; let (s, b) = many0(attribute_instance)(s)?; @@ -306,7 +306,7 @@ pub fn inc_or_dec_expression_suffix(s: Span) -> IResult IResult { let (s, a) = cond_predicate(s)?; let (s, b) = symbol("?")(s)?; @@ -322,7 +322,7 @@ pub fn conditional_expression(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn constant_expression(s: Span) -> IResult { alt(( map(constant_primary, |x| { @@ -334,7 +334,7 @@ pub fn constant_expression(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn constant_expression_unary(s: Span) -> IResult { let (s, a) = unary_operator(s)?; let (s, b) = many0(attribute_instance)(s)?; @@ -345,7 +345,7 @@ pub fn constant_expression_unary(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn constant_expression_binary(s: Span) -> IResult { let (s, a) = constant_expression(s)?; let (s, b) = binary_operator(s)?; @@ -359,7 +359,7 @@ pub fn constant_expression_binary(s: Span) -> IResult )) } -#[trace] +#[parser] pub fn constant_expression_ternary(s: Span) -> IResult { let (s, a) = constant_expression(s)?; let (s, b) = symbol("?")(s)?; @@ -375,7 +375,7 @@ pub fn constant_expression_ternary(s: Span) -> IResult )) } -#[trace] +#[parser] pub fn constant_mintypmax_expression(s: Span) -> IResult { alt(( constant_mintypmax_expression_ternary, @@ -385,7 +385,7 @@ pub fn constant_mintypmax_expression(s: Span) -> IResult IResult { @@ -402,7 +402,7 @@ pub fn constant_mintypmax_expression_ternary( )) } -#[trace] +#[parser] pub fn constant_param_expression(s: Span) -> IResult { alt(( map(symbol("$"), |x| ConstantParamExpression::Dollar(x)), @@ -413,7 +413,7 @@ pub fn constant_param_expression(s: Span) -> IResult IResult { alt(( map(symbol("$"), |x| ParamExpression::Dollar(x)), @@ -424,7 +424,7 @@ pub fn param_expression(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn constant_range_expression(s: Span) -> IResult { alt(( map(constant_part_select_range, |x| { @@ -436,7 +436,7 @@ pub fn constant_range_expression(s: Span) -> IResult IResult { alt(( map(constant_range, |x| { @@ -448,7 +448,7 @@ pub fn constant_part_select_range(s: Span) -> IResult IResult { let (s, a) = constant_expression(s)?; let (s, b) = symbol(":")(s)?; @@ -456,7 +456,7 @@ pub fn constant_range(s: Span) -> IResult { Ok((s, ConstantRange { nodes: (a, b, c) })) } -#[trace] +#[parser] pub fn constant_indexed_range(s: Span) -> IResult { let (s, a) = constant_expression(s)?; let (s, b) = alt((symbol("+:"), symbol("-:")))(s)?; @@ -464,7 +464,7 @@ pub fn constant_indexed_range(s: Span) -> IResult { Ok((s, ConstantIndexedRange { nodes: (a, b, c) })) } -#[trace] +#[parser] pub fn expression(s: Span) -> IResult { alt(( map(primary, |x| Expression::Primary(Box::new(x))), @@ -486,7 +486,7 @@ pub fn expression(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn expression_unary(s: Span) -> IResult { let (s, x) = unary_operator(s)?; let (s, y) = many0(attribute_instance)(s)?; @@ -497,7 +497,7 @@ pub fn expression_unary(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn expression_operator_assignment(s: Span) -> IResult { let (s, a) = paren(operator_assignment)(s)?; Ok(( @@ -506,7 +506,7 @@ pub fn expression_operator_assignment(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn expression_binary(s: Span) -> IResult { let (s, a) = expression(s)?; let (s, b) = binary_operator(s)?; @@ -520,7 +520,7 @@ pub fn expression_binary(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn tagged_union_expression(s: Span) -> IResult { let (s, a) = symbol("tagged")(s)?; let (s, b) = member_identifier(s)?; @@ -528,7 +528,7 @@ pub fn tagged_union_expression(s: Span) -> IResult Ok((s, TaggedUnionExpression { nodes: (a, b, c) })) } -#[trace] +#[parser] pub fn inside_expression(s: Span) -> IResult { let (s, a) = expression(s)?; let (s, b) = symbol("inside")(s)?; @@ -536,7 +536,7 @@ pub fn inside_expression(s: Span) -> IResult { Ok((s, InsideExpression { nodes: (a, b, c) })) } -#[trace] +#[parser] pub fn value_range(s: Span) -> IResult { alt(( value_range_binary, @@ -544,13 +544,13 @@ pub fn value_range(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn value_range_binary(s: Span) -> IResult { let (s, a) = bracket(triple(expression, symbol(":"), expression))(s)?; Ok((s, ValueRange::Binary(ValueRangeBinary { nodes: (a,) }))) } -#[trace] +#[parser] pub fn mintypmax_expression(s: Span) -> IResult { alt(( mintypmax_expression_ternary, @@ -558,7 +558,7 @@ pub fn mintypmax_expression(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn mintypmax_expression_ternary(s: Span) -> IResult { let (s, a) = expression(s)?; let (s, b) = symbol(":")(s)?; @@ -573,7 +573,7 @@ pub fn mintypmax_expression_ternary(s: Span) -> IResult IResult { @@ -591,7 +591,7 @@ pub fn module_path_conditional_expression( )) } -#[trace] +#[parser] pub fn module_path_expression(s: Span) -> IResult { alt(( map(module_path_primary, |x| { @@ -605,7 +605,7 @@ pub fn module_path_expression(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn module_path_expression_unary(s: Span) -> IResult { let (s, a) = unary_module_path_operator(s)?; let (s, b) = many0(attribute_instance)(s)?; @@ -616,7 +616,7 @@ pub fn module_path_expression_unary(s: Span) -> IResult IResult { let (s, a) = module_path_expression(s)?; let (s, b) = binary_module_path_operator(s)?; @@ -630,7 +630,7 @@ pub fn module_path_expression_binary(s: Span) -> IResult IResult { alt(( module_path_mintypmax_expression_ternary, @@ -640,7 +640,7 @@ pub fn module_path_mintypmax_expression(s: Span) -> IResult IResult { @@ -657,7 +657,7 @@ pub fn module_path_mintypmax_expression_ternary( )) } -#[trace] +#[parser] pub fn part_select_range(s: Span) -> IResult { alt(( map(constant_range, |x| PartSelectRange::ConstantRange(x)), @@ -665,7 +665,7 @@ pub fn part_select_range(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn indexed_range(s: Span) -> IResult { let (s, a) = expression(s)?; let (s, b) = alt((symbol("+:"), symbol("-:")))(s)?; @@ -673,7 +673,7 @@ pub fn indexed_range(s: Span) -> IResult { Ok((s, IndexedRange { nodes: (a, b, c) })) } -#[trace] +#[parser] pub fn genvar_expression(s: Span) -> IResult { let (s, a) = constant_expression(s)?; Ok((s, GenvarExpression { nodes: (a,) })) diff --git a/src/parser/expressions/numbers.rs b/src/parser/expressions/numbers.rs index 62305fb..8614f97 100644 --- a/src/parser/expressions/numbers.rs +++ b/src/parser/expressions/numbers.rs @@ -162,7 +162,7 @@ pub struct UnbasedUnsizedLiteral<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn number(s: Span) -> IResult { alt(( map(real_number, |x| Number::RealNumber(x)), @@ -170,7 +170,7 @@ pub fn number(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn integral_number(s: Span) -> IResult { alt(( map(octal_number, |x| IntegralNumber::OctalNumber(x)), @@ -180,7 +180,7 @@ pub fn integral_number(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn decimal_number(s: Span) -> IResult { alt(( decimal_number_base_unsigned, @@ -190,7 +190,7 @@ pub fn decimal_number(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn decimal_number_base_unsigned(s: Span) -> IResult { let (s, a) = opt(size)(s)?; let (s, b) = decimal_base(s)?; @@ -201,7 +201,7 @@ pub fn decimal_number_base_unsigned(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn decimal_number_base_x_number(s: Span) -> IResult { let (s, a) = opt(size)(s)?; let (s, b) = decimal_base(s)?; @@ -212,7 +212,7 @@ pub fn decimal_number_base_x_number(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn decimal_number_base_z_number(s: Span) -> IResult { let (s, a) = opt(size)(s)?; let (s, b) = decimal_base(s)?; @@ -223,7 +223,7 @@ pub fn decimal_number_base_z_number(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn binary_number(s: Span) -> IResult { let (s, a) = opt(size)(s)?; let (s, b) = binary_base(s)?; @@ -231,7 +231,7 @@ pub fn binary_number(s: Span) -> IResult { Ok((s, BinaryNumber { nodes: (a, b, c) })) } -#[trace] +#[parser] pub fn octal_number(s: Span) -> IResult { let (s, a) = opt(size)(s)?; let (s, b) = octal_base(s)?; @@ -239,7 +239,7 @@ pub fn octal_number(s: Span) -> IResult { Ok((s, OctalNumber { nodes: (a, b, c) })) } -#[trace] +#[parser] pub fn hex_number(s: Span) -> IResult { let (s, a) = opt(size)(s)?; let (s, b) = hex_base(s)?; @@ -247,7 +247,7 @@ pub fn hex_number(s: Span) -> IResult { Ok((s, HexNumber { nodes: (a, b, c) })) } -#[trace] +#[parser] pub fn sign(s: Span) -> IResult { alt(( map(symbol("+"), |x| Sign::Plus(x)), @@ -255,19 +255,19 @@ pub fn sign(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn size(s: Span) -> IResult { let (s, a) = non_zero_unsigned_number(s)?; Ok((s, Size { nodes: (a,) })) } -#[trace] +#[parser] pub fn non_zero_unsigned_number(s: Span) -> IResult { let (s, a) = ws(non_zero_unsigned_number_impl)(s)?; Ok((s, NonZeroUnsignedNumber { nodes: a })) } -#[trace] +#[parser] pub fn non_zero_unsigned_number_impl(s: Span) -> IResult { let (s, a) = is_a("123456789")(s)?; fold_many0(alt((tag("_"), digit1)), a, |acc, item| { @@ -275,7 +275,7 @@ pub fn non_zero_unsigned_number_impl(s: Span) -> IResult { })(s) } -#[trace] +#[parser] pub fn real_number(s: Span) -> IResult { alt(( real_number_floating, @@ -283,7 +283,7 @@ pub fn real_number(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn real_number_floating(s: Span) -> IResult { let (s, a) = unsigned_number(s)?; let (s, b) = opt(pair(symbol("."), unsigned_number))(s)?; @@ -298,7 +298,7 @@ pub fn real_number_floating(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn fixed_point_number(s: Span) -> IResult { let (s, a) = unsigned_number(s)?; let (s, b) = map(tag("."), |x| Symbol { nodes: (x, vec![]) })(s)?;; @@ -306,19 +306,19 @@ pub fn fixed_point_number(s: Span) -> IResult { Ok((s, FixedPointNumber { nodes: (a, b, c) })) } -#[trace] +#[parser] pub fn exp(s: Span) -> IResult { let (s, a) = alt((symbol("e"), symbol("E")))(s)?; Ok((s, Exp { nodes: (a,) })) } -#[trace] +#[parser] pub fn unsigned_number(s: Span) -> IResult { let (s, a) = ws(unsigned_number_impl)(s)?; Ok((s, UnsignedNumber { nodes: a })) } -#[trace] +#[parser] pub fn unsigned_number_impl(s: Span) -> IResult { let (s, a) = digit1(s)?; fold_many0(alt((tag("_"), digit1)), a, |acc, item| { @@ -326,13 +326,13 @@ pub fn unsigned_number_impl(s: Span) -> IResult { })(s) } -#[trace] +#[parser] pub fn binary_value(s: Span) -> IResult { let (s, a) = ws(binary_value_impl)(s)?; Ok((s, BinaryValue { nodes: a })) } -#[trace] +#[parser] pub fn binary_value_impl(s: Span) -> IResult { let (s, a) = is_a("01xXzZ?")(s)?; fold_many0(alt((tag("_"), is_a("01xXzZ?"))), a, |acc, item| { @@ -340,13 +340,13 @@ pub fn binary_value_impl(s: Span) -> IResult { })(s) } -#[trace] +#[parser] pub fn octal_value(s: Span) -> IResult { let (s, a) = ws(octal_value_impl)(s)?; Ok((s, OctalValue { nodes: a })) } -#[trace] +#[parser] pub fn octal_value_impl(s: Span) -> IResult { let (s, a) = is_a("01234567xXzZ?")(s)?; fold_many0(alt((tag("_"), is_a("01234567xXzZ?"))), a, |acc, item| { @@ -354,13 +354,13 @@ pub fn octal_value_impl(s: Span) -> IResult { })(s) } -#[trace] +#[parser] pub fn hex_value(s: Span) -> IResult { let (s, a) = ws(hex_value_impl)(s)?; Ok((s, HexValue { nodes: a })) } -#[trace] +#[parser] pub fn hex_value_impl(s: Span) -> IResult { let (s, a) = is_a("0123456789abcdefABCDEFxXzZ?")(s)?; fold_many0( @@ -370,57 +370,57 @@ pub fn hex_value_impl(s: Span) -> IResult { )(s) } -#[trace] +#[parser] pub fn decimal_base(s: Span) -> IResult { let (s, a) = ws(decimal_base_impl)(s)?; Ok((s, DecimalBase { nodes: a })) } -#[trace] +#[parser] pub fn decimal_base_impl(s: Span) -> IResult { alt((tag_no_case("'d"), tag_no_case("'sd")))(s) } -#[trace] +#[parser] pub fn binary_base(s: Span) -> IResult { let (s, a) = ws(binary_base_impl)(s)?; Ok((s, BinaryBase { nodes: a })) } -#[trace] +#[parser] pub fn binary_base_impl(s: Span) -> IResult { alt((tag_no_case("'b"), tag_no_case("'sb")))(s) } -#[trace] +#[parser] pub fn octal_base(s: Span) -> IResult { let (s, a) = ws(octal_base_impl)(s)?; Ok((s, OctalBase { nodes: a })) } -#[trace] +#[parser] pub fn octal_base_impl(s: Span) -> IResult { alt((tag_no_case("'o"), tag_no_case("'so")))(s) } -#[trace] +#[parser] pub fn hex_base(s: Span) -> IResult { let (s, a) = ws(hex_base_impl)(s)?; Ok((s, HexBase { nodes: a })) } -#[trace] +#[parser] pub fn hex_base_impl(s: Span) -> IResult { alt((tag_no_case("'h"), tag_no_case("'sh")))(s) } -#[trace] +#[parser] pub fn x_number(s: Span) -> IResult { let (s, a) = ws(x_number_impl)(s)?; Ok((s, XNumber { nodes: a })) } -#[trace] +#[parser] pub fn x_number_impl(s: Span) -> IResult { let (s, a) = tag_no_case("x")(s)?; fold_many0(alt((tag("_"), is_a("_"))), a, |acc, item| { @@ -428,13 +428,13 @@ pub fn x_number_impl(s: Span) -> IResult { })(s) } -#[trace] +#[parser] pub fn z_number(s: Span) -> IResult { let (s, a) = ws(z_number_impl)(s)?; Ok((s, ZNumber { nodes: a })) } -#[trace] +#[parser] pub fn z_number_impl(s: Span) -> IResult { let (s, a) = alt((tag_no_case("z"), tag("?")))(s)?; fold_many0(alt((tag("_"), is_a("_"))), a, |acc, item| { @@ -442,7 +442,7 @@ pub fn z_number_impl(s: Span) -> IResult { })(s) } -#[trace] +#[parser] pub fn unbased_unsized_literal(s: Span) -> IResult { let (s, a) = alt((symbol("'0"), symbol("'1"), symbol("'z"), symbol("'x")))(s)?; Ok((s, UnbasedUnsizedLiteral { nodes: (a,) })) diff --git a/src/parser/expressions/operators.rs b/src/parser/expressions/operators.rs index 31a8ebd..887e2af 100644 --- a/src/parser/expressions/operators.rs +++ b/src/parser/expressions/operators.rs @@ -32,7 +32,7 @@ pub struct BinaryModulePathOperator<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn unary_operator(s: Span) -> IResult { let (s, a) = alt(( symbol("+"), @@ -50,7 +50,7 @@ pub fn unary_operator(s: Span) -> IResult { Ok((s, UnaryOperator { nodes: (a,) })) } -#[trace] +#[parser] pub fn binary_operator(s: Span) -> IResult { let (s, a) = alt(( alt(( @@ -90,13 +90,13 @@ pub fn binary_operator(s: Span) -> IResult { Ok((s, BinaryOperator { nodes: (a,) })) } -#[trace] +#[parser] pub fn inc_or_dec_operator(s: Span) -> IResult { let (s, a) = alt((symbol("++"), symbol("--")))(s)?; Ok((s, IncOrDecOperator { nodes: (a,) })) } -#[trace] +#[parser] pub fn unary_module_path_operator(s: Span) -> IResult { let (s, a) = alt(( symbol("!"), @@ -112,7 +112,7 @@ pub fn unary_module_path_operator(s: Span) -> IResult IResult { let (s, a) = alt(( symbol("=="), diff --git a/src/parser/expressions/primaries.rs b/src/parser/expressions/primaries.rs index 3bc2af6..e7d8a73 100644 --- a/src/parser/expressions/primaries.rs +++ b/src/parser/expressions/primaries.rs @@ -261,7 +261,7 @@ pub struct Cast<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn constant_primary(s: Span) -> IResult { alt(( map(symbol("null"), |x| ConstantPrimary::Null(x)), @@ -288,7 +288,7 @@ pub fn constant_primary(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn constant_primary_ps_parameter(s: Span) -> IResult { let (s, a) = ps_parameter_identifier(s)?; let (s, b) = constant_select(s)?; @@ -298,7 +298,7 @@ pub fn constant_primary_ps_parameter(s: Span) -> IResult )) } -#[trace] +#[parser] pub fn constant_primary_specparam(s: Span) -> IResult { let (s, a) = specparam_identifier(s)?; let (s, b) = opt(bracket(constant_range_expression))(s)?; @@ -308,7 +308,7 @@ pub fn constant_primary_specparam(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn constant_primary_formal_port(s: Span) -> IResult { let (s, a) = formal_port_identifier(s)?; let (s, b) = constant_select(s)?; @@ -318,7 +318,7 @@ pub fn constant_primary_formal_port(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn constant_primary_enum(s: Span) -> IResult { let (s, a) = package_scope_or_class_scope(s)?; let (s, b) = enum_identifier(s)?; @@ -328,7 +328,7 @@ pub fn constant_primary_enum(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn constant_primary_concatenation(s: Span) -> IResult { let (s, a) = constant_concatenation(s)?; let (s, b) = opt(bracket(constant_range_expression))(s)?; @@ -338,7 +338,7 @@ pub fn constant_primary_concatenation(s: Span) -> IResult )) } -#[trace] +#[parser] pub fn constant_primary_multiple_concatenation(s: Span) -> IResult { let (s, a) = constant_multiple_concatenation(s)?; let (s, b) = opt(bracket(constant_range_expression))(s)?; @@ -350,7 +350,7 @@ pub fn constant_primary_multiple_concatenation(s: Span) -> IResult IResult { let (s, a) = paren(constant_mintypmax_expression)(s)?; Ok(( @@ -359,7 +359,7 @@ pub fn constant_primary_mintypmax_expression(s: Span) -> IResult IResult { alt(( map(number, |x| ModulePathPrimary::Number(x)), @@ -377,7 +377,7 @@ pub fn module_path_primary(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn module_path_primary_mintypmax_expression(s: Span) -> IResult { let (s, a) = paren(module_path_mintypmax_expression)(s)?; Ok(( @@ -386,7 +386,7 @@ pub fn module_path_primary_mintypmax_expression(s: Span) -> IResult IResult { alt(( map(symbol("this"), |x| Primary::This(x)), @@ -414,7 +414,7 @@ pub fn primary(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn primary_hierarchical(s: Span) -> IResult { let (s, a) = opt(class_qualifier_or_package_scope)(s)?; let (s, b) = hierarchical_identifier(s)?; @@ -425,7 +425,7 @@ pub fn primary_hierarchical(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn primary_concatenation(s: Span) -> IResult { let (s, a) = concatenation(s)?; let (s, b) = opt(bracket(range_expression))(s)?; @@ -435,7 +435,7 @@ pub fn primary_concatenation(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn primary_multiple_concatenation(s: Span) -> IResult { let (s, a) = multiple_concatenation(s)?; let (s, b) = opt(bracket(range_expression))(s)?; @@ -445,7 +445,7 @@ pub fn primary_multiple_concatenation(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn primary_mintypmax_expression(s: Span) -> IResult { let (s, a) = paren(mintypmax_expression)(s)?; Ok(( @@ -454,7 +454,7 @@ pub fn primary_mintypmax_expression(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn class_qualifier_or_package_scope(s: Span) -> IResult { alt(( map(class_qualifier, |x| { @@ -466,14 +466,14 @@ pub fn class_qualifier_or_package_scope(s: Span) -> IResult IResult { let (s, a) = opt(local)(s)?; let (s, b) = opt(implicit_class_handle_or_class_scope)(s)?; Ok((s, ClassQualifier { nodes: (a, b) })) } -#[trace] +#[parser] pub fn range_expression(s: Span) -> IResult { alt(( map(expression, |x| RangeExpression::Expression(x)), @@ -481,7 +481,7 @@ pub fn range_expression(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn primary_literal(s: Span) -> IResult { alt(( map(time_literal, |x| PrimaryLiteral::TimeLiteral(x)), @@ -493,12 +493,12 @@ pub fn primary_literal(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn time_literal(s: Span) -> IResult { alt((time_literal_unsigned, time_literal_fixed_point))(s) } -#[trace] +#[parser] pub fn time_literal_unsigned(s: Span) -> IResult { let (s, a) = unsigned_number(s)?; let (s, b) = time_unit(s)?; @@ -508,7 +508,7 @@ pub fn time_literal_unsigned(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn time_literal_fixed_point(s: Span) -> IResult { let (s, a) = fixed_point_number(s)?; let (s, b) = time_unit(s)?; @@ -518,7 +518,7 @@ pub fn time_literal_fixed_point(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn time_unit(s: Span) -> IResult { alt(( map(symbol("s"), |x| TimeUnit::S(x)), @@ -530,7 +530,7 @@ pub fn time_unit(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn implicit_class_handle(s: Span) -> IResult { alt(( map( @@ -542,13 +542,13 @@ pub fn implicit_class_handle(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn bit_select(s: Span) -> IResult { let (s, a) = many0(bracket(expression))(s)?; Ok((s, BitSelect { nodes: (a,) })) } -#[trace] +#[parser] pub fn select(s: Span) -> IResult { let (s, a) = opt(triple( many0(triple(symbol("."), member_identifier, bit_select)), @@ -560,7 +560,7 @@ pub fn select(s: Span) -> IResult { Ok((s, Select { nodes: (a, b, c) })) } -#[trace] +#[parser] pub fn nonrange_select(s: Span) -> IResult { let (s, a) = opt(triple( many0(triple(symbol("."), member_identifier, bit_select)), @@ -571,13 +571,13 @@ pub fn nonrange_select(s: Span) -> IResult { Ok((s, NonrangeSelect { nodes: (a, b) })) } -#[trace] +#[parser] pub fn constant_bit_select(s: Span) -> IResult { let (s, a) = many0(bracket(constant_expression))(s)?; Ok((s, ConstantBitSelect { nodes: (a,) })) } -#[trace] +#[parser] pub fn constant_select(s: Span) -> IResult { let (s, a) = opt(triple( many0(triple(symbol("."), member_identifier, constant_bit_select)), @@ -589,7 +589,7 @@ pub fn constant_select(s: Span) -> IResult { Ok((s, ConstantSelect { nodes: (a, b, c) })) } -#[trace] +#[parser] pub fn constant_cast(s: Span) -> IResult { let (s, a) = casting_type(s)?; let (s, b) = symbol("'")(s)?; @@ -597,13 +597,13 @@ pub fn constant_cast(s: Span) -> IResult { Ok((s, ConstantCast { nodes: (a, b, c) })) } -#[trace] +#[parser] pub fn constant_let_expression(s: Span) -> IResult { let (s, a) = let_expression(s)?; Ok((s, ConstantLetExpression { nodes: (a,) })) } -#[trace] +#[parser] pub fn cast(s: Span) -> IResult { let (s, a) = casting_type(s)?; let (s, b) = symbol("'")(s)?; diff --git a/src/parser/expressions/strings.rs b/src/parser/expressions/strings.rs index 2daa2ab..12e753e 100644 --- a/src/parser/expressions/strings.rs +++ b/src/parser/expressions/strings.rs @@ -15,13 +15,13 @@ pub struct StringLiteral<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn string_literal(s: Span) -> IResult { let (s, a) = ws(string_literal_impl)(s)?; Ok((s, StringLiteral { nodes: a })) } -#[trace] +#[parser] pub fn string_literal_impl(s: Span) -> IResult { let (s, a) = tag("\"")(s)?; let (s, b) = many1(pair(is_not("\\\""), opt(pair(tag("\\"), take(1usize)))))(s)?; diff --git a/src/parser/expressions/subroutine_calls.rs b/src/parser/expressions/subroutine_calls.rs index 5929270..f16b3ed 100644 --- a/src/parser/expressions/subroutine_calls.rs +++ b/src/parser/expressions/subroutine_calls.rs @@ -184,13 +184,13 @@ pub enum ArrayMethodName<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn constant_function_call(s: Span) -> IResult { let (s, a) = function_subroutine_call(s)?; Ok((s, ConstantFunctionCall { nodes: (a,) })) } -#[trace] +#[parser] pub fn tf_call(s: Span) -> IResult { let (s, a) = ps_or_hierarchical_tf_identifier(s)?; let (s, b) = many0(attribute_instance)(s)?; @@ -198,7 +198,7 @@ pub fn tf_call(s: Span) -> IResult { Ok((s, TfCall { nodes: (a, b, c) })) } -#[trace] +#[parser] pub fn system_tf_call(s: Span) -> IResult { alt(( system_tf_call_arg_optional, @@ -207,7 +207,7 @@ pub fn system_tf_call(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn system_tf_call_arg_optional(s: Span) -> IResult { let (s, a) = system_tf_identifier(s)?; let (s, b) = opt(paren(list_of_arguments))(s)?; @@ -217,7 +217,7 @@ pub fn system_tf_call_arg_optional(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn system_tf_call_arg_data_type(s: Span) -> IResult { let (s, a) = system_tf_identifier(s)?; let (s, b) = paren(pair(data_type, opt(pair(symbol(","), expression))))(s)?; @@ -227,7 +227,7 @@ pub fn system_tf_call_arg_data_type(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn system_tf_call_arg_expression(s: Span) -> IResult { let (s, a) = system_tf_identifier(s)?; let (s, b) = paren(pair( @@ -240,7 +240,7 @@ pub fn system_tf_call_arg_expression(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn subroutine_call(s: Span) -> IResult { alt(( map(tf_call, |x| SubroutineCall::TfCall(Box::new(x))), @@ -252,7 +252,7 @@ pub fn subroutine_call(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn subroutine_call_randomize(s: Span) -> IResult { let (s, a) = opt(pair(symbol("std"), symbol("::")))(s)?; let (s, b) = randomize_call(s)?; @@ -262,17 +262,17 @@ pub fn subroutine_call_randomize(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn function_subroutine_call(s: Span) -> IResult { map(subroutine_call, |x| FunctionSubroutineCall { nodes: (x,) })(s) } -#[trace] +#[parser] pub fn list_of_arguments(s: Span) -> IResult { alt((list_of_arguments_ordered, list_of_arguments_named))(s) } -#[trace] +#[parser] pub fn list_of_arguments_ordered(s: Span) -> IResult { let (s, a) = list(symbol(","), opt(expression))(s)?; let (s, b) = many0(tuple(( @@ -287,7 +287,7 @@ pub fn list_of_arguments_ordered(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn list_of_arguments_named(s: Span) -> IResult { let (s, a) = symbol(".")(s)?; let (s, b) = identifier(s)?; @@ -306,7 +306,7 @@ pub fn list_of_arguments_named(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn method_call(s: Span) -> IResult { let (s, a) = method_call_root(s)?; let (s, b) = symbol(".")(s)?; @@ -315,7 +315,7 @@ pub fn method_call(s: Span) -> IResult { Ok((s, MethodCall { nodes: (a, b, c) })) } -#[trace] +#[parser] pub fn method_call_body(s: Span) -> IResult { alt(( method_call_body_user, @@ -325,7 +325,7 @@ pub fn method_call_body(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn method_call_body_user(s: Span) -> IResult { let (s, a) = method_identifier(s)?; let (s, b) = many0(attribute_instance)(s)?; @@ -336,7 +336,7 @@ pub fn method_call_body_user(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn built_in_method_call(s: Span) -> IResult { alt(( map(array_manipulation_call, |x| { @@ -346,7 +346,7 @@ pub fn built_in_method_call(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn array_manipulation_call(s: Span) -> IResult { let (s, a) = array_method_name(s)?; let (s, b) = many0(attribute_instance)(s)?; @@ -360,7 +360,7 @@ pub fn array_manipulation_call(s: Span) -> IResult )) } -#[trace] +#[parser] pub fn randomize_call(s: Span) -> IResult { let (s, a) = symbol("randomize")(s)?; let (s, b) = many0(attribute_instance)(s)?; @@ -378,7 +378,7 @@ pub fn randomize_call(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn variable_identifier_list_or_null(s: Span) -> IResult { alt(( map(variable_identifier_list, |x| { @@ -388,7 +388,7 @@ pub fn variable_identifier_list_or_null(s: Span) -> IResult IResult { alt(( map(primary, |x| MethodCallRoot::Primary(x)), @@ -398,7 +398,7 @@ pub fn method_call_root(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn array_method_name(s: Span) -> IResult { alt(( map(symbol("unique"), |x| ArrayMethodName::Unique(x)), diff --git a/src/parser/general/attributes.rs b/src/parser/general/attributes.rs index 9120f69..d15863c 100644 --- a/src/parser/general/attributes.rs +++ b/src/parser/general/attributes.rs @@ -18,7 +18,7 @@ pub struct AttrSpec<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn attribute_instance(s: Span) -> IResult { let (s, a) = symbol("(*")(s)?; let (s, b) = list(symbol(","), attr_spec)(s)?; @@ -26,7 +26,7 @@ pub fn attribute_instance(s: Span) -> IResult { Ok((s, AttributeInstance { nodes: (a, b, c) })) } -#[trace] +#[parser] pub fn attr_spec(s: Span) -> IResult { let (s, a) = identifier(s)?; let (s, b) = opt(pair(symbol("="), constant_expression))(s)?; diff --git a/src/parser/general/comments.rs b/src/parser/general/comments.rs index df06b2a..49828f2 100644 --- a/src/parser/general/comments.rs +++ b/src/parser/general/comments.rs @@ -13,12 +13,12 @@ pub struct Comment<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn comment(s: Span) -> IResult { alt((one_line_comment, block_comment))(s) } -#[trace] +#[parser] pub fn one_line_comment(s: Span) -> IResult { let (s, a) = tag("//")(s)?; let (s, b) = is_not("\n")(s)?; @@ -26,7 +26,7 @@ pub fn one_line_comment(s: Span) -> IResult { Ok((s, Comment { nodes: (a,) })) } -#[trace] +#[parser] pub fn block_comment(s: Span) -> IResult { let (s, a) = tag("/*")(s)?; let (s, b) = is_not("*/")(s)?; diff --git a/src/parser/general/identifiers.rs b/src/parser/general/identifiers.rs index ce9c706..1670886 100644 --- a/src/parser/general/identifiers.rs +++ b/src/parser/general/identifiers.rs @@ -544,31 +544,31 @@ pub enum PackageScopeOrClassScope<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn array_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, ArrayIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn block_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, BlockIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn bin_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, BinIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn c_identifier(s: Span) -> IResult { let (s, a) = ws(c_identifier_impl)(s)?; Ok((s, CIdentifier { nodes: a })) } -#[trace] +#[parser] pub fn c_identifier_impl(s: Span) -> IResult { let (s, a) = is_a(AZ_)(s)?; let (s, b) = opt(is_a(AZ09_))(s)?; @@ -580,97 +580,97 @@ pub fn c_identifier_impl(s: Span) -> IResult { Ok((s, a)) } -#[trace] +#[parser] pub fn cell_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, CellIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn checker_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, CheckerIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn class_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, ClassIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn class_variable_identifier(s: Span) -> IResult { let (s, a) = variable_identifier(s)?; Ok((s, ClassVariableIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn clocking_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, ClockingIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn config_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, ConfigIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn const_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, ConstIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn constraint_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, ConstraintIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn covergroup_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, CovergroupIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn covergroup_variable_identifier(s: Span) -> IResult { let (s, a) = variable_identifier(s)?; Ok((s, CovergroupVariableIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn cover_point_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, CoverPointIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn cross_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, CrossIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn dynamic_array_variable_identifier(s: Span) -> IResult { let (s, a) = variable_identifier(s)?; Ok((s, DynamicArrayVariableIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn enum_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, EnumIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn escaped_identifier(s: Span) -> IResult { let (s, a) = ws(escaped_identifier_impl)(s)?; Ok((s, EscapedIdentifier { nodes: a })) } -#[trace] +#[parser] pub fn escaped_identifier_impl(s: Span) -> IResult { let (s, a) = tag("\\")(s)?; let (s, b) = is_not(" \t\r\n")(s)?; @@ -678,55 +678,55 @@ pub fn escaped_identifier_impl(s: Span) -> IResult { Ok((s, a)) } -#[trace] +#[parser] pub fn formal_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, FormalIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn formal_port_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, FormalPortIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn function_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, FunctionIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn generate_block_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, GenerateBlockIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn genvar_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, GenvarIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn hierarchical_array_identifier(s: Span) -> IResult { let (s, a) = hierarchical_identifier(s)?; Ok((s, HierarchicalArrayIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn hierarchical_block_identifier(s: Span) -> IResult { let (s, a) = hierarchical_identifier(s)?; Ok((s, HierarchicalBlockIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn hierarchical_event_identifier(s: Span) -> IResult { let (s, a) = hierarchical_identifier(s)?; Ok((s, HierarchicalEventIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn hierarchical_identifier(s: Span) -> IResult { let (s, a) = opt(root)(s)?; let (s, b) = many0(triple(identifier, constant_bit_select, symbol(".")))(s)?; @@ -734,20 +734,20 @@ pub fn hierarchical_identifier(s: Span) -> IResult Ok((s, HierarchicalIdentifier { nodes: (a, b, c) })) } -#[trace] +#[parser] pub fn root(s: Span) -> IResult { let (s, a) = symbol("$root")(s)?; let (s, b) = symbol(".")(s)?; Ok((s, Root { nodes: (a, b) })) } -#[trace] +#[parser] pub fn hierarchical_net_identifier(s: Span) -> IResult { let (s, a) = hierarchical_identifier(s)?; Ok((s, HierarchicalNetIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn hierarchical_parameter_identifier( s: Span, ) -> IResult { @@ -755,37 +755,37 @@ pub fn hierarchical_parameter_identifier( Ok((s, HierarchicalParameterIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn hierarchical_property_identifier(s: Span) -> IResult { let (s, a) = hierarchical_identifier(s)?; Ok((s, HierarchicalPropertyIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn hierarchical_sequence_identifier(s: Span) -> IResult { let (s, a) = hierarchical_identifier(s)?; Ok((s, HierarchicalSequenceIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn hierarchical_task_identifier(s: Span) -> IResult { let (s, a) = hierarchical_identifier(s)?; Ok((s, HierarchicalTaskIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn hierarchical_tf_identifier(s: Span) -> IResult { let (s, a) = hierarchical_identifier(s)?; Ok((s, HierarchicalTfIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn hierarchical_variable_identifier(s: Span) -> IResult { let (s, a) = hierarchical_identifier(s)?; Ok((s, HierarchicalVariableIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn identifier(s: Span) -> IResult { alt(( map(escaped_identifier, |x| Identifier::EscapedIdentifier(x)), @@ -793,102 +793,102 @@ pub fn identifier(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn index_variable_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, IndexVariableIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn interface_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, InterfaceIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn interface_instance_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, InterfaceInstanceIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn inout_port_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, InoutPortIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn input_port_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, InputPortIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn instance_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, InstanceIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn library_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, LibraryIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn member_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, MemberIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn method_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, MethodIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn modport_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, ModportIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn module_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, ModuleIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn net_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, NetIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn net_type_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, NetTypeIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn output_port_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, OutputPortIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn package_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, PackageIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn package_scope(s: Span) -> IResult { alt((package_scope_package, map(unit, |x| PackageScope::Unit(x))))(s) } -#[trace] +#[parser] pub fn package_scope_package(s: Span) -> IResult { let (s, a) = package_identifier(s)?; let (s, b) = symbol("::")(s)?; @@ -898,72 +898,72 @@ pub fn package_scope_package(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn unit(s: Span) -> IResult { let (s, a) = symbol("$unit")(s)?; let (s, b) = symbol("::")(s)?; Ok((s, Unit { nodes: (a, b) })) } -#[trace] +#[parser] pub fn parameter_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, ParameterIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn port_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, PortIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn production_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, ProductionIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn program_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, ProgramIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn property_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, PropertyIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn ps_class_identifier(s: Span) -> IResult { let (s, a) = opt(package_scope)(s)?; let (s, b) = class_identifier(s)?; Ok((s, PsClassIdentifier { nodes: (a, b) })) } -#[trace] +#[parser] pub fn ps_covergroup_identifier(s: Span) -> IResult { let (s, a) = opt(package_scope)(s)?; let (s, b) = covergroup_identifier(s)?; Ok((s, PsCovergroupIdentifier { nodes: (a, b) })) } -#[trace] +#[parser] pub fn ps_checker_identifier(s: Span) -> IResult { let (s, a) = opt(package_scope)(s)?; let (s, b) = checker_identifier(s)?; Ok((s, PsCheckerIdentifier { nodes: (a, b) })) } -#[trace] +#[parser] pub fn ps_identifier(s: Span) -> IResult { let (s, a) = opt(package_scope)(s)?; let (s, b) = identifier(s)?; Ok((s, PsIdentifier { nodes: (a, b) })) } -#[trace] +#[parser] pub fn ps_or_hierarchical_array_identifier( s: Span, ) -> IResult { @@ -972,7 +972,7 @@ pub fn ps_or_hierarchical_array_identifier( Ok((s, PsOrHierarchicalArrayIdentifier { nodes: (a, b) })) } -#[trace] +#[parser] pub fn ps_or_hierarchical_net_identifier(s: Span) -> IResult { alt(( ps_or_hierarchical_net_identifier_package_scope, @@ -982,7 +982,7 @@ pub fn ps_or_hierarchical_net_identifier(s: Span) -> IResult IResult { @@ -996,7 +996,7 @@ pub fn ps_or_hierarchical_net_identifier_package_scope( )) } -#[trace] +#[parser] pub fn ps_or_hierarchical_property_identifier( s: Span, ) -> IResult { @@ -1008,7 +1008,7 @@ pub fn ps_or_hierarchical_property_identifier( ))(s) } -#[trace] +#[parser] pub fn ps_or_hierarchical_property_identifier_package_scope( s: Span, ) -> IResult { @@ -1022,7 +1022,7 @@ pub fn ps_or_hierarchical_property_identifier_package_scope( )) } -#[trace] +#[parser] pub fn ps_or_hierarchical_sequence_identifier( s: Span, ) -> IResult { @@ -1034,7 +1034,7 @@ pub fn ps_or_hierarchical_sequence_identifier( ))(s) } -#[trace] +#[parser] pub fn ps_or_hierarchical_sequence_identifier_package_scope( s: Span, ) -> IResult { @@ -1048,7 +1048,7 @@ pub fn ps_or_hierarchical_sequence_identifier_package_scope( )) } -#[trace] +#[parser] pub fn ps_or_hierarchical_tf_identifier(s: Span) -> IResult { alt(( ps_or_hierarchical_tf_identifier_package_scope, @@ -1058,7 +1058,7 @@ pub fn ps_or_hierarchical_tf_identifier(s: Span) -> IResult IResult { @@ -1072,7 +1072,7 @@ pub fn ps_or_hierarchical_tf_identifier_package_scope( )) } -#[trace] +#[parser] pub fn ps_parameter_identifier(s: Span) -> IResult { alt(( ps_parameter_identifier_scope, @@ -1080,7 +1080,7 @@ pub fn ps_parameter_identifier(s: Span) -> IResult ))(s) } -#[trace] +#[parser] pub fn ps_parameter_identifier_scope(s: Span) -> IResult { let (s, a) = opt(package_scope_or_class_scope)(s)?; let (s, b) = parameter_identifier(s)?; @@ -1090,7 +1090,7 @@ pub fn ps_parameter_identifier_scope(s: Span) -> IResult IResult { let (s, a) = many0(triple( generate_block_identifier, @@ -1104,32 +1104,32 @@ pub fn ps_parameter_identifier_generate(s: Span) -> IResult IResult { let (s, a) = opt(local_or_package_scope_or_class_scope)(s)?; let (s, b) = type_identifier(s)?; Ok((s, PsTypeIdentifier { nodes: (a, b) })) } -#[trace] +#[parser] pub fn sequence_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, SequenceIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn signal_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, SignalIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn simple_identifier(s: Span) -> IResult { let (s, a) = ws(simple_identifier_impl)(s)?; Ok((s, SimpleIdentifier { nodes: a })) } -#[trace] +#[parser] pub fn simple_identifier_impl(s: Span) -> IResult { let (s, a) = is_a(AZ_)(s)?; let (s, b) = opt(is_a(AZ09_DOLLAR))(s)?; @@ -1141,19 +1141,19 @@ pub fn simple_identifier_impl(s: Span) -> IResult { Ok((s, a)) } -#[trace] +#[parser] pub fn specparam_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, SpecparamIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn system_tf_identifier(s: Span) -> IResult { let (s, a) = ws(system_tf_identifier_impl)(s)?; Ok((s, SystemTfIdentifier { nodes: a })) } -#[trace] +#[parser] pub fn system_tf_identifier_impl(s: Span) -> IResult { let (s, a) = tag("$")(s)?; let (s, b) = is_a(AZ09_DOLLAR)(s)?; @@ -1161,49 +1161,49 @@ pub fn system_tf_identifier_impl(s: Span) -> IResult { Ok((s, a)) } -#[trace] +#[parser] pub fn task_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, TaskIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn tf_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, TfIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn terminal_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, TerminalIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn topmodule_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, TopmoduleIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn type_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, TypeIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn udp_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, UdpIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn variable_identifier(s: Span) -> IResult { let (s, a) = identifier(s)?; Ok((s, VariableIdentifier { nodes: (a,) })) } -#[trace] +#[parser] pub fn implicit_class_handle_or_class_scope_or_package_scope( s: Span, ) -> IResult { @@ -1220,7 +1220,7 @@ pub fn implicit_class_handle_or_class_scope_or_package_scope( ))(s) } -#[trace] +#[parser] pub fn implicit_class_handle_or_package_scope( s: Span, ) -> IResult { @@ -1234,7 +1234,7 @@ pub fn implicit_class_handle_or_package_scope( ))(s) } -#[trace] +#[parser] pub fn implicit_class_handle_or_class_scope( s: Span, ) -> IResult { @@ -1248,7 +1248,7 @@ pub fn implicit_class_handle_or_class_scope( ))(s) } -#[trace] +#[parser] pub fn package_scope_or_class_scope(s: Span) -> IResult { alt(( map(package_scope, |x| PackageScopeOrClassScope::PackageScope(x)), @@ -1256,7 +1256,7 @@ pub fn package_scope_or_class_scope(s: Span) -> IResult IResult { @@ -1271,7 +1271,7 @@ pub fn local_or_package_scope_or_class_scope( ))(s) } -#[trace] +#[parser] pub fn local(s: Span) -> IResult { let (s, a) = symbol("local")(s)?; let (s, b) = symbol("::")(s)?; diff --git a/src/parser/instantiations/checker_instantiation.rs b/src/parser/instantiations/checker_instantiation.rs index 61c7566..ce1a1ce 100644 --- a/src/parser/instantiations/checker_instantiation.rs +++ b/src/parser/instantiations/checker_instantiation.rs @@ -61,7 +61,7 @@ pub struct NamedCheckerPortConnectionAsterisk<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn checker_instantiation(s: Span) -> IResult { let (s, a) = ps_checker_identifier(s)?; let (s, b) = name_of_instance(s)?; @@ -75,7 +75,7 @@ pub fn checker_instantiation(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn list_of_checker_port_connections(s: Span) -> IResult { alt(( list_of_checker_port_connections_ordered, @@ -83,7 +83,7 @@ pub fn list_of_checker_port_connections(s: Span) -> IResult IResult { @@ -94,7 +94,7 @@ pub fn list_of_checker_port_connections_ordered( )) } -#[trace] +#[parser] pub fn list_of_checker_port_connections_named( s: Span, ) -> IResult { @@ -105,14 +105,14 @@ pub fn list_of_checker_port_connections_named( )) } -#[trace] +#[parser] pub fn ordered_checker_port_connection(s: Span) -> IResult { let (s, x) = many0(attribute_instance)(s)?; let (s, y) = opt(property_actual_arg)(s)?; Ok((s, OrderedCheckerPortConnection { nodes: (x, y) })) } -#[trace] +#[parser] pub fn named_checker_port_connection(s: Span) -> IResult { alt(( named_checker_port_connection_identifier, @@ -120,7 +120,7 @@ pub fn named_checker_port_connection(s: Span) -> IResult IResult { @@ -136,7 +136,7 @@ pub fn named_checker_port_connection_identifier( )) } -#[trace] +#[parser] pub fn named_checker_port_connection_asterisk( s: Span, ) -> IResult { diff --git a/src/parser/instantiations/generated_instantiation.rs b/src/parser/instantiations/generated_instantiation.rs index 8f8344d..0ff5ee3 100644 --- a/src/parser/instantiations/generated_instantiation.rs +++ b/src/parser/instantiations/generated_instantiation.rs @@ -145,7 +145,7 @@ pub enum GenerateItem<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn generate_region(s: Span) -> IResult { let (s, a) = symbol("generate")(s)?; let (s, b) = many0(generate_item)(s)?; @@ -153,7 +153,7 @@ pub fn generate_region(s: Span) -> IResult { Ok((s, GenerateRegion { nodes: (a, b, c) })) } -#[trace] +#[parser] pub fn loop_generate_construct(s: Span) -> IResult { let (s, a) = symbol("for")(s)?; let (s, b) = paren(tuple(( @@ -167,7 +167,7 @@ pub fn loop_generate_construct(s: Span) -> IResult Ok((s, LoopGenerateConstruct { nodes: (a, b, c) })) } -#[trace] +#[parser] pub fn generate_initialization(s: Span) -> IResult { let (s, a) = opt(map(symbol("genvar"), |x| Genvar { nodes: (x,) }))(s)?; let (s, b) = genvar_identifier(s)?; @@ -181,7 +181,7 @@ pub fn generate_initialization(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn genvar_iteration(s: Span) -> IResult { alt(( genvar_iteration_assignment, @@ -190,7 +190,7 @@ pub fn genvar_iteration(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn genvar_iteration_assignment(s: Span) -> IResult { let (s, a) = genvar_identifier(s)?; let (s, b) = assignment_operator(s)?; @@ -201,7 +201,7 @@ pub fn genvar_iteration_assignment(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn genvar_iteration_prefix(s: Span) -> IResult { let (s, a) = inc_or_dec_operator(s)?; let (s, b) = genvar_identifier(s)?; @@ -211,7 +211,7 @@ pub fn genvar_iteration_prefix(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn genvar_iteration_suffix(s: Span) -> IResult { let (s, a) = genvar_identifier(s)?; let (s, b) = inc_or_dec_operator(s)?; @@ -221,7 +221,7 @@ pub fn genvar_iteration_suffix(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn conditional_generate_construct(s: Span) -> IResult { alt(( map(if_generate_construct, |x| { @@ -233,7 +233,7 @@ pub fn conditional_generate_construct(s: Span) -> IResult IResult { let (s, a) = symbol("if")(s)?; let (s, b) = paren(constant_expression)(s)?; @@ -247,7 +247,7 @@ pub fn if_generate_construct(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn case_generate_construct(s: Span) -> IResult { let (s, a) = symbol("case")(s)?; let (s, b) = paren(constant_expression)(s)?; @@ -261,12 +261,12 @@ pub fn case_generate_construct(s: Span) -> IResult )) } -#[trace] +#[parser] pub fn case_generate_item(s: Span) -> IResult { alt((case_generate_item_nondefault, case_generate_item_default))(s) } -#[trace] +#[parser] pub fn case_generate_item_nondefault(s: Span) -> IResult { let (s, a) = list(symbol(","), constant_expression)(s)?; let (s, b) = symbol(":")(s)?; @@ -277,7 +277,7 @@ pub fn case_generate_item_nondefault(s: Span) -> IResult )) } -#[trace] +#[parser] pub fn case_generate_item_default(s: Span) -> IResult { let (s, a) = symbol("default")(s)?; let (s, b) = opt(symbol(":"))(s)?; @@ -288,7 +288,7 @@ pub fn case_generate_item_default(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn generate_block(s: Span) -> IResult { alt(( map(generate_item, |x| GenerateBlock::GenerateItem(x)), @@ -296,7 +296,7 @@ pub fn generate_block(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn generate_block_multiple(s: Span) -> IResult { let (s, a) = opt(pair(generate_block_identifier, symbol(":")))(s)?; let (s, b) = symbol("begin")(s)?; @@ -312,7 +312,7 @@ pub fn generate_block_multiple(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn generate_item(s: Span) -> IResult { alt(( map(module_or_generate_item, |x| { diff --git a/src/parser/instantiations/interface_instantiation.rs b/src/parser/instantiations/interface_instantiation.rs index 6faa028..f3e4840 100644 --- a/src/parser/instantiations/interface_instantiation.rs +++ b/src/parser/instantiations/interface_instantiation.rs @@ -17,7 +17,7 @@ pub struct InterfaceInstantiation<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn interface_instantiation(s: Span) -> IResult { let (s, a) = interface_identifier(s)?; let (s, b) = opt(parameter_value_assignment)(s)?; diff --git a/src/parser/instantiations/module_instantiation.rs b/src/parser/instantiations/module_instantiation.rs index f531a6d..b44e978 100644 --- a/src/parser/instantiations/module_instantiation.rs +++ b/src/parser/instantiations/module_instantiation.rs @@ -112,7 +112,7 @@ pub struct NamedPortConnectionAsterisk<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn module_instantiation(s: Span) -> IResult { let (s, a) = module_identifier(s)?; let (s, b) = opt(parameter_value_assignment)(s)?; @@ -126,14 +126,14 @@ pub fn module_instantiation(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn parameter_value_assignment(s: Span) -> IResult { let (s, a) = symbol("#")(s)?; let (s, b) = paren(opt(list_of_parameter_assignments))(s)?; Ok((s, ParameterValueAssignment { nodes: (a, b) })) } -#[trace] +#[parser] pub fn list_of_parameter_assignments(s: Span) -> IResult { alt(( list_of_parameter_assignments_ordered, @@ -141,7 +141,7 @@ pub fn list_of_parameter_assignments(s: Span) -> IResult IResult { let (s, a) = list(symbol(","), ordered_parameter_assignment)(s)?; Ok(( @@ -150,7 +150,7 @@ pub fn list_of_parameter_assignments_ordered(s: Span) -> IResult IResult { let (s, a) = list(symbol(","), named_parameter_assignment)(s)?; Ok(( @@ -159,13 +159,13 @@ pub fn list_of_parameter_assignments_named(s: Span) -> IResult IResult { let (s, x) = param_expression(s)?; Ok((s, OrderedParameterAssignment { nodes: (x,) })) } -#[trace] +#[parser] pub fn named_parameter_assignment(s: Span) -> IResult { let (s, a) = symbol(".")(s)?; let (s, b) = parameter_identifier(s)?; @@ -173,21 +173,21 @@ pub fn named_parameter_assignment(s: Span) -> IResult IResult { let (s, a) = name_of_instance(s)?; let (s, b) = paren(opt(list_of_port_connections))(s)?; Ok((s, HierarchicalInstance { nodes: (a, b) })) } -#[trace] +#[parser] pub fn name_of_instance(s: Span) -> IResult { let (s, x) = instance_identifier(s)?; let (s, y) = many0(unpacked_dimension)(s)?; Ok((s, NameOfInstance { nodes: (x, y) })) } -#[trace] +#[parser] pub fn list_of_port_connections(s: Span) -> IResult { alt(( list_of_port_connections_ordered, @@ -195,7 +195,7 @@ pub fn list_of_port_connections(s: Span) -> IResult ))(s) } -#[trace] +#[parser] pub fn list_of_port_connections_ordered(s: Span) -> IResult { let (s, a) = list(symbol(","), ordered_port_connection)(s)?; Ok(( @@ -204,7 +204,7 @@ pub fn list_of_port_connections_ordered(s: Span) -> IResult IResult { let (s, a) = list(symbol(","), named_port_connection)(s)?; Ok(( @@ -213,14 +213,14 @@ pub fn list_of_port_connections_named(s: Span) -> IResult IResult { let (s, x) = many0(attribute_instance)(s)?; let (s, y) = opt(expression)(s)?; Ok((s, OrderedPortConnection { nodes: (x, y) })) } -#[trace] +#[parser] pub fn named_port_connection(s: Span) -> IResult { alt(( named_port_connection_identifier, @@ -228,7 +228,7 @@ pub fn named_port_connection(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn named_port_connection_identifier(s: Span) -> IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = symbol(".")(s)?; @@ -242,7 +242,7 @@ pub fn named_port_connection_identifier(s: Span) -> IResult IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = symbol(".*")(s)?; diff --git a/src/parser/instantiations/program_instantiation.rs b/src/parser/instantiations/program_instantiation.rs index 7c2b4ac..bf89859 100644 --- a/src/parser/instantiations/program_instantiation.rs +++ b/src/parser/instantiations/program_instantiation.rs @@ -17,7 +17,7 @@ pub struct ProgramInstantiation<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn program_instantiation(s: Span) -> IResult { let (s, a) = program_identifier(s)?; let (s, b) = opt(parameter_value_assignment)(s)?; diff --git a/src/parser/primitive_instances/primitive_gate_and_switch_types.rs b/src/parser/primitive_instances/primitive_gate_and_switch_types.rs index e2a975a..48bf813 100644 --- a/src/parser/primitive_instances/primitive_gate_and_switch_types.rs +++ b/src/parser/primitive_instances/primitive_gate_and_switch_types.rs @@ -42,13 +42,13 @@ pub struct PassSwitchtype<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn cmos_switchtype(s: Span) -> IResult { let (s, a) = alt((symbol("cmos"), symbol("rcmos")))(s)?; Ok((s, CmosSwitchtype { nodes: (a,) })) } -#[trace] +#[parser] pub fn enable_gatetype(s: Span) -> IResult { let (s, a) = alt(( symbol("bufif0"), @@ -59,7 +59,7 @@ pub fn enable_gatetype(s: Span) -> IResult { Ok((s, EnableGatetype { nodes: (a,) })) } -#[trace] +#[parser] pub fn mos_switchtype(s: Span) -> IResult { let (s, a) = alt(( symbol("nmos"), @@ -70,7 +70,7 @@ pub fn mos_switchtype(s: Span) -> IResult { Ok((s, MosSwitchtype { nodes: (a,) })) } -#[trace] +#[parser] pub fn n_input_gatetype(s: Span) -> IResult { let (s, a) = alt(( symbol("and"), @@ -83,13 +83,13 @@ pub fn n_input_gatetype(s: Span) -> IResult { Ok((s, NInputGatetype { nodes: (a,) })) } -#[trace] +#[parser] pub fn n_output_gatetype(s: Span) -> IResult { let (s, a) = alt((symbol("buf"), symbol("not")))(s)?; Ok((s, NOutputGatetype { nodes: (a,) })) } -#[trace] +#[parser] pub fn pass_en_switchtype(s: Span) -> IResult { let (s, a) = alt(( symbol("tranif0"), @@ -100,7 +100,7 @@ pub fn pass_en_switchtype(s: Span) -> IResult { Ok((s, PassEnSwitchtype { nodes: (a,) })) } -#[trace] +#[parser] pub fn pass_switchtype(s: Span) -> IResult { let (s, a) = alt((symbol("tran"), symbol("rtran")))(s)?; Ok((s, PassSwitchtype { nodes: (a,) })) diff --git a/src/parser/primitive_instances/primitive_instantiation_and_instances.rs b/src/parser/primitive_instances/primitive_instantiation_and_instances.rs index e8035ed..e42c6d2 100644 --- a/src/parser/primitive_instances/primitive_instantiation_and_instances.rs +++ b/src/parser/primitive_instances/primitive_instantiation_and_instances.rs @@ -227,7 +227,7 @@ pub struct PullGateInstance<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn gate_instantiation(s: Span) -> IResult { alt(( gate_instantiation_cmos, @@ -242,7 +242,7 @@ pub fn gate_instantiation(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn gate_instantiation_cmos(s: Span) -> IResult { let (s, a) = cmos_switchtype(s)?; let (s, b) = opt(delay3)(s)?; @@ -256,7 +256,7 @@ pub fn gate_instantiation_cmos(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn gate_instantiation_enable(s: Span) -> IResult { let (s, a) = enable_gatetype(s)?; let (s, b) = opt(drive_strength)(s)?; @@ -271,7 +271,7 @@ pub fn gate_instantiation_enable(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn gate_instantiation_mos(s: Span) -> IResult { let (s, a) = mos_switchtype(s)?; let (s, b) = opt(delay3)(s)?; @@ -285,7 +285,7 @@ pub fn gate_instantiation_mos(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn gate_instantiation_n_input(s: Span) -> IResult { let (s, a) = n_input_gatetype(s)?; let (s, b) = opt(drive_strength)(s)?; @@ -300,7 +300,7 @@ pub fn gate_instantiation_n_input(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn gate_instantiation_n_output(s: Span) -> IResult { let (s, a) = n_output_gatetype(s)?; let (s, b) = opt(drive_strength)(s)?; @@ -315,7 +315,7 @@ pub fn gate_instantiation_n_output(s: Span) -> IResult )) } -#[trace] +#[parser] pub fn gate_instantiation_pass_en(s: Span) -> IResult { let (s, a) = pass_en_switchtype(s)?; let (s, b) = opt(delay2)(s)?; @@ -329,7 +329,7 @@ pub fn gate_instantiation_pass_en(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn gate_instantiation_pass(s: Span) -> IResult { let (s, a) = pass_switchtype(s)?; let (s, b) = list(symbol(","), pass_switch_instance)(s)?; @@ -340,7 +340,7 @@ pub fn gate_instantiation_pass(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn gate_instantiation_pulldown(s: Span) -> IResult { let (s, a) = symbol("pulldown")(s)?; let (s, b) = opt(pulldown_strength)(s)?; @@ -354,7 +354,7 @@ pub fn gate_instantiation_pulldown(s: Span) -> IResult )) } -#[trace] +#[parser] pub fn gate_instantiation_pullup(s: Span) -> IResult { let (s, a) = symbol("pullup")(s)?; let (s, b) = opt(pullup_strength)(s)?; @@ -368,7 +368,7 @@ pub fn gate_instantiation_pullup(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn cmos_switch_instance(s: Span) -> IResult { let (s, a) = opt(name_of_instance)(s)?; let (s, b) = paren(tuple(( @@ -383,7 +383,7 @@ pub fn cmos_switch_instance(s: Span) -> IResult { Ok((s, CmosSwitchInstance { nodes: (a, b) })) } -#[trace] +#[parser] pub fn enable_gate_instance(s: Span) -> IResult { let (s, a) = opt(name_of_instance)(s)?; let (s, b) = paren(tuple(( @@ -396,7 +396,7 @@ pub fn enable_gate_instance(s: Span) -> IResult { Ok((s, EnableGateInstance { nodes: (a, b) })) } -#[trace] +#[parser] pub fn mos_switch_instance(s: Span) -> IResult { let (s, a) = opt(name_of_instance)(s)?; let (s, b) = paren(tuple(( @@ -409,7 +409,7 @@ pub fn mos_switch_instance(s: Span) -> IResult { Ok((s, MosSwitchInstance { nodes: (a, b) })) } -#[trace] +#[parser] pub fn n_input_gate_instance(s: Span) -> IResult { let (s, a) = opt(name_of_instance)(s)?; let (s, b) = paren(tuple(( @@ -420,7 +420,7 @@ pub fn n_input_gate_instance(s: Span) -> IResult { Ok((s, NInputGateInstance { nodes: (a, b) })) } -#[trace] +#[parser] pub fn n_output_gate_instance(s: Span) -> IResult { let (s, a) = opt(name_of_instance)(s)?; let (s, b) = paren(tuple(( @@ -431,14 +431,14 @@ pub fn n_output_gate_instance(s: Span) -> IResult { Ok((s, NOutputGateInstance { nodes: (a, b) })) } -#[trace] +#[parser] pub fn pass_switch_instance(s: Span) -> IResult { let (s, a) = opt(name_of_instance)(s)?; let (s, b) = paren(tuple((inout_terminal, symbol(","), inout_terminal)))(s)?; Ok((s, PassSwitchInstance { nodes: (a, b) })) } -#[trace] +#[parser] pub fn pass_enable_switch_instance(s: Span) -> IResult { let (s, a) = opt(name_of_instance)(s)?; let (s, b) = paren(tuple(( @@ -451,7 +451,7 @@ pub fn pass_enable_switch_instance(s: Span) -> IResult IResult { let (s, a) = opt(name_of_instance)(s)?; let (s, b) = paren(output_terminal)(s)?; diff --git a/src/parser/primitive_instances/primitive_strengths.rs b/src/parser/primitive_instances/primitive_strengths.rs index eedb09e..61ba61e 100644 --- a/src/parser/primitive_instances/primitive_strengths.rs +++ b/src/parser/primitive_instances/primitive_strengths.rs @@ -51,12 +51,12 @@ pub struct PullupStrength1<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn pulldown_strength(s: Span) -> IResult { alt((pulldown_strength01, pulldown_strength10, pulldown_strength0))(s) } -#[trace] +#[parser] pub fn pulldown_strength01(s: Span) -> IResult { let (s, a) = paren(triple(strength0, symbol(","), strength1))(s)?; Ok(( @@ -65,7 +65,7 @@ pub fn pulldown_strength01(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn pulldown_strength10(s: Span) -> IResult { let (s, a) = paren(triple(strength1, symbol(","), strength0))(s)?; Ok(( @@ -74,7 +74,7 @@ pub fn pulldown_strength10(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn pulldown_strength0(s: Span) -> IResult { let (s, a) = paren(strength0)(s)?; Ok(( @@ -83,12 +83,12 @@ pub fn pulldown_strength0(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn pullup_strength(s: Span) -> IResult { alt((pullup_strength01, pullup_strength10, pullup_strength1))(s) } -#[trace] +#[parser] pub fn pullup_strength01(s: Span) -> IResult { let (s, a) = paren(triple(strength0, symbol(","), strength1))(s)?; Ok(( @@ -97,7 +97,7 @@ pub fn pullup_strength01(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn pullup_strength10(s: Span) -> IResult { let (s, a) = paren(triple(strength1, symbol(","), strength0))(s)?; Ok(( @@ -106,7 +106,7 @@ pub fn pullup_strength10(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn pullup_strength1(s: Span) -> IResult { let (s, a) = paren(strength1)(s)?; Ok(( diff --git a/src/parser/primitive_instances/primitive_terminals.rs b/src/parser/primitive_instances/primitive_terminals.rs index 0767b24..e54cd50 100644 --- a/src/parser/primitive_instances/primitive_terminals.rs +++ b/src/parser/primitive_instances/primitive_terminals.rs @@ -36,37 +36,37 @@ pub struct PcontrolTerminal<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn enable_terminal(s: Span) -> IResult { let (s, a) = expression(s)?; Ok((s, EnableTerminal { nodes: (a,) })) } -#[trace] +#[parser] pub fn inout_terminal(s: Span) -> IResult { let (s, a) = net_lvalue(s)?; Ok((s, InoutTerminal { nodes: (a,) })) } -#[trace] +#[parser] pub fn input_terminal(s: Span) -> IResult { let (s, a) = expression(s)?; Ok((s, InputTerminal { nodes: (a,) })) } -#[trace] +#[parser] pub fn ncontrol_terminal(s: Span) -> IResult { let (s, a) = expression(s)?; Ok((s, NcontrolTerminal { nodes: (a,) })) } -#[trace] +#[parser] pub fn output_terminal(s: Span) -> IResult { let (s, a) = net_lvalue(s)?; Ok((s, OutputTerminal { nodes: (a,) })) } -#[trace] +#[parser] pub fn pcontrol_terminal(s: Span) -> IResult { let (s, a) = expression(s)?; Ok((s, PcontrolTerminal { nodes: (a,) })) diff --git a/src/parser/source_text/checker_items.rs b/src/parser/source_text/checker_items.rs index 22bd862..dc3488d 100644 --- a/src/parser/source_text/checker_items.rs +++ b/src/parser/source_text/checker_items.rs @@ -92,13 +92,13 @@ pub enum CheckerGenerateItem<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn checker_port_list(s: Span) -> IResult { let (s, a) = list(symbol(","), checker_port_item)(s)?; Ok((s, CheckerPortList { nodes: (a,) })) } -#[trace] +#[parser] pub fn checker_port_item(s: Span) -> IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = opt(checker_port_direction)(s)?; @@ -114,7 +114,7 @@ pub fn checker_port_item(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn checker_port_direction(s: Span) -> IResult { alt(( map(symbol("input"), |x| CheckerPortDirection::Input(x)), @@ -122,7 +122,7 @@ pub fn checker_port_direction(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn checker_or_generate_item(s: Span) -> IResult { alt(( map(checker_or_generate_item_declaration, |x| { @@ -147,7 +147,7 @@ pub fn checker_or_generate_item(s: Span) -> IResult ))(s) } -#[trace] +#[parser] pub fn checker_or_generate_item_declaration( s: Span, ) -> IResult { @@ -177,7 +177,7 @@ pub fn checker_or_generate_item_declaration( ))(s) } -#[trace] +#[parser] pub fn checker_or_generate_item_declaration_data( s: Span, ) -> IResult { @@ -191,13 +191,13 @@ pub fn checker_or_generate_item_declaration_data( )) } -#[trace] +#[parser] pub fn rand(s: Span) -> IResult { let (s, a) = symbol("rand")(s)?; Ok((s, Rand { nodes: (a,) })) } -#[trace] +#[parser] pub fn checker_or_generate_item_declaration_clocking( s: Span, ) -> IResult { @@ -213,7 +213,7 @@ pub fn checker_or_generate_item_declaration_clocking( )) } -#[trace] +#[parser] pub fn checker_or_generate_item_declaration_disable( s: Span, ) -> IResult { @@ -230,7 +230,7 @@ pub fn checker_or_generate_item_declaration_disable( )) } -#[trace] +#[parser] pub fn checker_generate_item(s: Span) -> IResult { alt(( map(loop_generate_construct, |x| { diff --git a/src/parser/source_text/class_items.rs b/src/parser/source_text/class_items.rs index f261612..7f3d463 100644 --- a/src/parser/source_text/class_items.rs +++ b/src/parser/source_text/class_items.rs @@ -200,7 +200,7 @@ pub struct New<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn class_item(s: Span) -> IResult { alt(( class_item_property, @@ -218,21 +218,21 @@ pub fn class_item(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn class_item_property(s: Span) -> IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = class_property(s)?; Ok((s, ClassItem::Property(ClassItemProperty { nodes: (a, b) }))) } -#[trace] +#[parser] pub fn class_item_method(s: Span) -> IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = class_method(s)?; Ok((s, ClassItem::Method(ClassItemMethod { nodes: (a, b) }))) } -#[trace] +#[parser] pub fn class_item_constraint(s: Span) -> IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = class_constraint(s)?; @@ -242,7 +242,7 @@ pub fn class_item_constraint(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn class_item_declaration(s: Span) -> IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = class_declaration(s)?; @@ -252,7 +252,7 @@ pub fn class_item_declaration(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn class_item_covergroup(s: Span) -> IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = covergroup_declaration(s)?; @@ -262,12 +262,12 @@ pub fn class_item_covergroup(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn class_property(s: Span) -> IResult { alt((class_property_non_const, class_property_const))(s) } -#[trace] +#[parser] pub fn class_property_non_const(s: Span) -> IResult { let (s, a) = many0(property_qualifier)(s)?; let (s, b) = data_declaration(s)?; @@ -277,7 +277,7 @@ pub fn class_property_non_const(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn class_property_const(s: Span) -> IResult { let (s, a) = symbol("const")(s)?; let (s, b) = many0(class_item_qualifier)(s)?; @@ -293,7 +293,7 @@ pub fn class_property_const(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn class_method(s: Span) -> IResult { alt(( class_method_task, @@ -305,14 +305,14 @@ pub fn class_method(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn class_method_task(s: Span) -> IResult { let (s, a) = many0(method_qualifier)(s)?; let (s, b) = task_declaration(s)?; Ok((s, ClassMethod::Task(ClassMethodTask { nodes: (a, b) }))) } -#[trace] +#[parser] pub fn class_method_function(s: Span) -> IResult { let (s, a) = many0(method_qualifier)(s)?; let (s, b) = function_declaration(s)?; @@ -322,7 +322,7 @@ pub fn class_method_function(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn class_method_pure_virtual(s: Span) -> IResult { let (s, a) = symbol("pure")(s)?; let (s, b) = symbol("virtual")(s)?; @@ -337,7 +337,7 @@ pub fn class_method_pure_virtual(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn class_method_extern_method(s: Span) -> IResult { let (s, a) = symbol("extern")(s)?; let (s, b) = many0(method_qualifier)(s)?; @@ -351,7 +351,7 @@ pub fn class_method_extern_method(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn class_method_constructor(s: Span) -> IResult { let (s, a) = many0(method_qualifier)(s)?; let (s, b) = class_constructor_declaration(s)?; @@ -361,7 +361,7 @@ pub fn class_method_constructor(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn class_method_extern_constructor(s: Span) -> IResult { let (s, a) = symbol("extern")(s)?; let (s, b) = many0(method_qualifier)(s)?; @@ -372,7 +372,7 @@ pub fn class_method_extern_constructor(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn class_constructor_prototype(s: Span) -> IResult { let (s, a) = symbol("function")(s)?; let (s, b) = symbol("new")(s)?; @@ -386,7 +386,7 @@ pub fn class_constructor_prototype(s: Span) -> IResult IResult { alt(( map(constraint_prototype, |x| { @@ -398,7 +398,7 @@ pub fn class_constraint(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn class_item_qualifier(s: Span) -> IResult { alt(( map(symbol("static"), |x| ClassItemQualifier::Static(x)), @@ -407,7 +407,7 @@ pub fn class_item_qualifier(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn property_qualifier(s: Span) -> IResult { alt(( map(random_qualifier, |x| PropertyQualifier::RandomQualifier(x)), @@ -417,7 +417,7 @@ pub fn property_qualifier(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn random_qualifier(s: Span) -> IResult { alt(( map(symbol("randc"), |x| RandomQualifier::Randc(x)), @@ -425,7 +425,7 @@ pub fn random_qualifier(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn method_qualifier(s: Span) -> IResult { alt(( map(pair(symbol("pure"), symbol("virtual")), |x| { @@ -438,7 +438,7 @@ pub fn method_qualifier(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn method_prototype(s: Span) -> IResult { alt(( map(task_prototype, |x| MethodPrototype::TaskPrototype(x)), @@ -448,7 +448,7 @@ pub fn method_prototype(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn class_constructor_declaration(s: Span) -> IResult { let (s, a) = symbol("function")(s)?; let (s, b) = opt(class_scope)(s)?; @@ -474,7 +474,7 @@ pub fn class_constructor_declaration(s: Span) -> IResult IResult { let (s, a) = symbol("new")(s)?; Ok((s, New { nodes: (a,) })) diff --git a/src/parser/source_text/configuration_source_text.rs b/src/parser/source_text/configuration_source_text.rs index f7028b5..04ad5eb 100644 --- a/src/parser/source_text/configuration_source_text.rs +++ b/src/parser/source_text/configuration_source_text.rs @@ -144,7 +144,7 @@ pub struct Config<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn config_declaration(s: Span) -> IResult { let (s, a) = symbol("config")(s)?; let (s, b) = config_identifier(s)?; @@ -162,7 +162,7 @@ pub fn config_declaration(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn design_statement(s: Span) -> IResult { let (s, a) = symbol("design")(s)?; let (s, b) = many0(pair( @@ -173,7 +173,7 @@ pub fn design_statement(s: Span) -> IResult { Ok((s, DesignStatement { nodes: (a, b, c) })) } -#[trace] +#[parser] pub fn config_rule_statement(s: Span) -> IResult { alt(( config_rule_statement_default, @@ -184,7 +184,7 @@ pub fn config_rule_statement(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn config_rule_statement_default(s: Span) -> IResult { let (s, a) = default_clause(s)?; let (s, b) = liblist_clause(s)?; @@ -195,7 +195,7 @@ pub fn config_rule_statement_default(s: Span) -> IResult IResult { let (s, a) = inst_clause(s)?; let (s, b) = liblist_clause(s)?; @@ -206,7 +206,7 @@ pub fn config_rule_statement_inst_lib(s: Span) -> IResult IResult { let (s, a) = inst_clause(s)?; let (s, b) = use_clause(s)?; @@ -217,7 +217,7 @@ pub fn config_rule_statement_inst_use(s: Span) -> IResult IResult { let (s, a) = cell_clause(s)?; let (s, b) = liblist_clause(s)?; @@ -228,7 +228,7 @@ pub fn config_rule_statement_cell_lib(s: Span) -> IResult IResult { let (s, a) = cell_clause(s)?; let (s, b) = use_clause(s)?; @@ -239,27 +239,27 @@ pub fn config_rule_statement_cell_use(s: Span) -> IResult IResult { let (s, a) = symbol("default")(s)?; Ok((s, DefaultClause { nodes: (a,) })) } -#[trace] +#[parser] pub fn inst_clause(s: Span) -> IResult { let (s, a) = symbol("instance")(s)?; let (s, b) = inst_name(s)?; Ok((s, InstClause { nodes: (a, b) })) } -#[trace] +#[parser] pub fn inst_name(s: Span) -> IResult { let (s, a) = topmodule_identifier(s)?; let (s, b) = many0(pair(symbol("."), instance_identifier))(s)?; Ok((s, InstName { nodes: (a, b) })) } -#[trace] +#[parser] pub fn cell_clause(s: Span) -> IResult { let (s, a) = symbol("cell")(s)?; let (s, b) = opt(pair(library_identifier, symbol(".")))(s)?; @@ -267,19 +267,19 @@ pub fn cell_clause(s: Span) -> IResult { Ok((s, CellClause { nodes: (a, b, c) })) } -#[trace] +#[parser] pub fn liblist_clause(s: Span) -> IResult { let (s, a) = symbol("liblist")(s)?; let (s, b) = many0(library_identifier)(s)?; Ok((s, LiblistClause { nodes: (a, b) })) } -#[trace] +#[parser] pub fn use_clause(s: Span) -> IResult { alt((use_clause_cell, use_clause_named, use_clause_cell_named))(s) } -#[trace] +#[parser] pub fn use_clause_cell(s: Span) -> IResult { let (s, a) = symbol("use")(s)?; let (s, b) = opt(pair(library_identifier, symbol(".")))(s)?; @@ -293,7 +293,7 @@ pub fn use_clause_cell(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn use_clause_named(s: Span) -> IResult { let (s, a) = symbol("use")(s)?; let (s, b) = list(symbol(","), named_parameter_assignment)(s)?; @@ -301,7 +301,7 @@ pub fn use_clause_named(s: Span) -> IResult { Ok((s, UseClause::Named(UseClauseNamed { nodes: (a, b, c) }))) } -#[trace] +#[parser] pub fn use_clause_cell_named(s: Span) -> IResult { let (s, a) = symbol("use")(s)?; let (s, b) = opt(pair(library_identifier, symbol(".")))(s)?; @@ -316,7 +316,7 @@ pub fn use_clause_cell_named(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn config(s: Span) -> IResult { let (s, a) = symbol("config")(s)?; Ok((s, Config { nodes: (a,) })) diff --git a/src/parser/source_text/constraints.rs b/src/parser/source_text/constraints.rs index d6036c8..cc0059b 100644 --- a/src/parser/source_text/constraints.rs +++ b/src/parser/source_text/constraints.rs @@ -191,7 +191,7 @@ pub struct IdentifierList<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn constraint_declaration(s: Span) -> IResult { let (s, a) = opt(r#static)(s)?; let (s, b) = symbol("constraint")(s)?; @@ -205,19 +205,19 @@ pub fn constraint_declaration(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn r#static(s: Span) -> IResult { let (s, a) = symbol("static")(s)?; Ok((s, Static { nodes: (a,) })) } -#[trace] +#[parser] pub fn constraint_block(s: Span) -> IResult { let (s, a) = brace(many0(constraint_block_item))(s)?; Ok((s, ConstraintBlock { nodes: (a,) })) } -#[trace] +#[parser] pub fn constraint_block_item(s: Span) -> IResult { alt(( constraint_block_item_solve, @@ -227,7 +227,7 @@ pub fn constraint_block_item(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn constraint_block_item_solve(s: Span) -> IResult { let (s, a) = symbol("solve")(s)?; let (s, b) = solve_before_list(s)?; @@ -242,13 +242,13 @@ pub fn constraint_block_item_solve(s: Span) -> IResult IResult { let (s, a) = list(symbol(","), constraint_primary)(s)?; Ok((s, SolveBeforeList { nodes: (a,) })) } -#[trace] +#[parser] pub fn constraint_primary(s: Span) -> IResult { let (s, a) = opt(implicit_class_handle_or_class_scope)(s)?; let (s, b) = hierarchical_identifier(s)?; @@ -256,7 +256,7 @@ pub fn constraint_primary(s: Span) -> IResult { Ok((s, ConstraintPrimary { nodes: (a, b, c) })) } -#[trace] +#[parser] pub fn constraint_expression(s: Span) -> IResult { alt(( constraint_expression_expression, @@ -270,7 +270,7 @@ pub fn constraint_expression(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn constraint_expression_expression(s: Span) -> IResult { let (s, a) = opt(soft)(s)?; let (s, b) = expression_or_dist(s)?; @@ -281,13 +281,13 @@ pub fn constraint_expression_expression(s: Span) -> IResult IResult { let (s, a) = symbol("soft")(s)?; Ok((s, Soft { nodes: (a,) })) } -#[trace] +#[parser] pub fn constraint_expression_arrow(s: Span) -> IResult { let (s, a) = expression(s)?; let (s, b) = symbol("->")(s)?; @@ -298,7 +298,7 @@ pub fn constraint_expression_arrow(s: Span) -> IResult IResult { let (s, a) = symbol("if")(s)?; let (s, b) = paren(expression)(s)?; @@ -312,7 +312,7 @@ pub fn constraint_expression_if(s: Span) -> IResult )) } -#[trace] +#[parser] pub fn constraint_expression_foreach(s: Span) -> IResult { let (s, a) = symbol("foreach")(s)?; let (s, b) = paren(pair( @@ -326,7 +326,7 @@ pub fn constraint_expression_foreach(s: Span) -> IResult IResult { let (s, a) = symbol("disable")(s)?; let (s, b) = symbol("soft")(s)?; @@ -340,14 +340,14 @@ pub fn constraint_expression_disable(s: Span) -> IResult IResult { let (s, a) = symbol("unique")(s)?; let (s, b) = brace(open_range_list)(s)?; Ok((s, UniquenessConstraint { nodes: (a, b) })) } -#[trace] +#[parser] pub fn constraint_set(s: Span) -> IResult { alt(( map(constraint_expression, |x| { @@ -357,45 +357,45 @@ pub fn constraint_set(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn constraint_set_brace(s: Span) -> IResult { let (s, a) = brace(many0(constraint_expression))(s)?; Ok((s, ConstraintSet::Brace(ConstraintSetBrace { nodes: (a,) }))) } -#[trace] +#[parser] pub fn dist_list(s: Span) -> IResult { let (s, a) = list(symbol(","), dist_item)(s)?; Ok((s, DistList { nodes: (a,) })) } -#[trace] +#[parser] pub fn dist_item(s: Span) -> IResult { let (s, a) = value_range(s)?; let (s, b) = opt(dist_weight)(s)?; Ok((s, DistItem { nodes: (a, b) })) } -#[trace] +#[parser] pub fn dist_weight(s: Span) -> IResult { alt((dist_weight_equal, dist_weight_divide))(s) } -#[trace] +#[parser] pub fn dist_weight_equal(s: Span) -> IResult { let (s, a) = symbol(":=")(s)?; let (s, b) = expression(s)?; Ok((s, DistWeight::Equal(DistWeightEqual { nodes: (a, b) }))) } -#[trace] +#[parser] pub fn dist_weight_divide(s: Span) -> IResult { let (s, a) = symbol(":/")(s)?; let (s, b) = expression(s)?; Ok((s, DistWeight::Divide(DistWeightDivide { nodes: (a, b) }))) } -#[trace] +#[parser] pub fn constraint_prototype(s: Span) -> IResult { let (s, a) = opt(constraint_prototype_qualifier)(s)?; let (s, b) = opt(r#static)(s)?; @@ -410,7 +410,7 @@ pub fn constraint_prototype(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn constraint_prototype_qualifier(s: Span) -> IResult { alt(( map(symbol("extern"), |x| { @@ -420,7 +420,7 @@ pub fn constraint_prototype_qualifier(s: Span) -> IResult IResult { let (s, a) = opt(r#static)(s)?; let (s, b) = symbol("constraint")(s)?; @@ -435,7 +435,7 @@ pub fn extern_constraint_declaration(s: Span) -> IResult IResult { let (s, a) = list(symbol(","), identifier)(s)?; Ok((s, IdentifierList { nodes: (a,) })) diff --git a/src/parser/source_text/interface_items.rs b/src/parser/source_text/interface_items.rs index 881fd21..653a0e6 100644 --- a/src/parser/source_text/interface_items.rs +++ b/src/parser/source_text/interface_items.rs @@ -58,7 +58,7 @@ pub enum NonPortInterfaceItem<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn interface_or_generate_item(s: Span) -> IResult { alt(( interface_or_generate_item_module, @@ -66,7 +66,7 @@ pub fn interface_or_generate_item(s: Span) -> IResult IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = module_common_item(s)?; @@ -76,7 +76,7 @@ pub fn interface_or_generate_item_module(s: Span) -> IResult IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = extern_tf_declaration(s)?; @@ -86,12 +86,12 @@ pub fn interface_or_generate_item_extern(s: Span) -> IResult IResult { alt((extern_tf_declaration_method, extern_tf_declaration_task))(s) } -#[trace] +#[parser] pub fn extern_tf_declaration_method(s: Span) -> IResult { let (s, a) = symbol("extern")(s)?; let (s, b) = method_prototype(s)?; @@ -102,7 +102,7 @@ pub fn extern_tf_declaration_method(s: Span) -> IResult IResult { let (s, a) = symbol("extern")(s)?; let (s, b) = symbol("forkjoin")(s)?; @@ -116,7 +116,7 @@ pub fn extern_tf_declaration_task(s: Span) -> IResult )) } -#[trace] +#[parser] pub fn interface_item(s: Span) -> IResult { alt(( map(pair(port_declaration, symbol(";")), |x| { @@ -128,7 +128,7 @@ pub fn interface_item(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn non_port_interface_item(s: Span) -> IResult { alt(( map(generate_region, |x| NonPortInterfaceItem::GenerateRegion(x)), diff --git a/src/parser/source_text/library_source_text.rs b/src/parser/source_text/library_source_text.rs index 1d4bdd2..1ad5315 100644 --- a/src/parser/source_text/library_source_text.rs +++ b/src/parser/source_text/library_source_text.rs @@ -44,13 +44,13 @@ pub struct FilePathSpec<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn library_text(s: Span) -> IResult { let (s, a) = many0(library_description)(s)?; Ok((s, LibraryText { nodes: (a,) })) } -#[trace] +#[parser] pub fn library_description(s: Span) -> IResult { alt(( map(library_declaration, |x| { @@ -66,7 +66,7 @@ pub fn library_description(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn library_declaration(s: Span) -> IResult { let (s, a) = symbol("library")(s)?; let (s, b) = library_identifier(s)?; @@ -81,7 +81,7 @@ pub fn library_declaration(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn include_statement(s: Span) -> IResult { let (s, a) = symbol("include")(s)?; let (s, b) = file_path_spec(s)?; @@ -90,7 +90,7 @@ pub fn include_statement(s: Span) -> IResult { } //TODO support non literal path -#[trace] +#[parser] pub fn file_path_spec(s: Span) -> IResult { let (s, a) = string_literal(s)?; Ok((s, FilePathSpec { nodes: (a,) })) diff --git a/src/parser/source_text/module_items.rs b/src/parser/source_text/module_items.rs index e5839a0..d21dc72 100644 --- a/src/parser/source_text/module_items.rs +++ b/src/parser/source_text/module_items.rs @@ -216,7 +216,7 @@ pub enum BindInstantiation<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn elaboration_system_task(s: Span) -> IResult { alt(( elaboration_system_task_fatal, @@ -226,7 +226,7 @@ pub fn elaboration_system_task(s: Span) -> IResult ))(s) } -#[trace] +#[parser] pub fn elaboration_system_task_fatal(s: Span) -> IResult { let (s, a) = symbol("$fatal")(s)?; let (s, b) = opt(paren(pair( @@ -240,7 +240,7 @@ pub fn elaboration_system_task_fatal(s: Span) -> IResult IResult { let (s, a) = symbol("$error")(s)?; let (s, b) = opt(paren(opt(list_of_arguments)))(s)?; @@ -251,7 +251,7 @@ pub fn elaboration_system_task_error(s: Span) -> IResult IResult { let (s, a) = symbol("$warning")(s)?; let (s, b) = opt(paren(opt(list_of_arguments)))(s)?; @@ -262,7 +262,7 @@ pub fn elaboration_system_task_warning(s: Span) -> IResult IResult { let (s, a) = symbol("$info")(s)?; let (s, b) = opt(paren(opt(list_of_arguments)))(s)?; @@ -273,7 +273,7 @@ pub fn elaboration_system_task_info(s: Span) -> IResult IResult { alt(( map(symbol("0"), |x| FinishNumber::Zero(x)), @@ -282,7 +282,7 @@ pub fn finish_number(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn module_common_item(s: Span) -> IResult { alt(( map(module_or_generate_item_declaration, |x| { @@ -313,7 +313,7 @@ pub fn module_common_item(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn module_item(s: Span) -> IResult { alt(( map(pair(port_declaration, symbol(";")), |x| { @@ -323,7 +323,7 @@ pub fn module_item(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn module_or_generate_item(s: Span) -> IResult { alt(( module_or_generate_item_parameter, @@ -334,7 +334,7 @@ pub fn module_or_generate_item(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn module_or_generate_item_parameter(s: Span) -> IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = parameter_override(s)?; @@ -344,7 +344,7 @@ pub fn module_or_generate_item_parameter(s: Span) -> IResult IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = gate_instantiation(s)?; @@ -354,7 +354,7 @@ pub fn module_or_generate_item_gate(s: Span) -> IResult IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = udp_instantiation(s)?; @@ -364,7 +364,7 @@ pub fn module_or_generate_item_udp(s: Span) -> IResult IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = module_instantiation(s)?; @@ -374,7 +374,7 @@ pub fn module_or_generate_item_module(s: Span) -> IResult IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = module_common_item(s)?; @@ -386,7 +386,7 @@ pub fn module_or_generate_item_module_item(s: Span) -> IResult IResult { @@ -405,7 +405,7 @@ pub fn module_or_generate_item_declaration( ))(s) } -#[trace] +#[parser] pub fn module_or_generate_item_declaration_clocking( s: Span, ) -> IResult { @@ -421,7 +421,7 @@ pub fn module_or_generate_item_declaration_clocking( )) } -#[trace] +#[parser] pub fn module_or_generate_item_declaration_disable( s: Span, ) -> IResult { @@ -438,7 +438,7 @@ pub fn module_or_generate_item_declaration_disable( )) } -#[trace] +#[parser] pub fn non_port_module_item(s: Span) -> IResult { alt(( map(generate_region, |x| NonPortModuleItem::GenerateRegion(x)), @@ -462,7 +462,7 @@ pub fn non_port_module_item(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn non_port_module_item_specparam(s: Span) -> IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = specparam_declaration(s)?; @@ -472,7 +472,7 @@ pub fn non_port_module_item_specparam(s: Span) -> IResult IResult { let (s, a) = symbol("defparam")(s)?; let (s, b) = list_of_defparam_assignments(s)?; @@ -480,12 +480,12 @@ pub fn parameter_override(s: Span) -> IResult { Ok((s, ParameterOverride { nodes: (a, b, c) })) } -#[trace] +#[parser] pub fn bind_directive(s: Span) -> IResult { alt((bind_directive_scope, bind_directive_instance))(s) } -#[trace] +#[parser] pub fn bind_directive_scope(s: Span) -> IResult { let (s, a) = symbol("bind")(s)?; let (s, b) = bind_target_scope(s)?; @@ -500,7 +500,7 @@ pub fn bind_directive_scope(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn bind_directive_instance(s: Span) -> IResult { let (s, a) = symbol("bind")(s)?; let (s, b) = bind_target_instance(s)?; @@ -514,7 +514,7 @@ pub fn bind_directive_instance(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn bind_target_scope(s: Span) -> IResult { alt(( map(module_identifier, |x| BindTargetScope::ModuleIdentifier(x)), @@ -524,20 +524,20 @@ pub fn bind_target_scope(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn bind_target_instance(s: Span) -> IResult { let (s, a) = hierarchical_identifier(s)?; let (s, b) = constant_bit_select(s)?; Ok((s, BindTargetInstance { nodes: (a, b) })) } -#[trace] +#[parser] pub fn bind_target_instance_list(s: Span) -> IResult { let (s, a) = list(symbol(","), bind_target_instance)(s)?; Ok((s, BindTargetInstanceList { nodes: (a,) })) } -#[trace] +#[parser] pub fn bind_instantiation(s: Span) -> IResult { alt(( map(program_instantiation, |x| { diff --git a/src/parser/source_text/module_parameters_and_ports.rs b/src/parser/source_text/module_parameters_and_ports.rs index c5c6952..b053db2 100644 --- a/src/parser/source_text/module_parameters_and_ports.rs +++ b/src/parser/source_text/module_parameters_and_ports.rs @@ -218,7 +218,7 @@ pub struct AnsiPortDeclarationParen<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn parameter_port_list(s: Span) -> IResult { alt(( parameter_port_list_assignment, @@ -227,7 +227,7 @@ pub fn parameter_port_list(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn parameter_port_list_assignment(s: Span) -> IResult { let (s, a) = symbol("#")(s)?; let (s, b) = paren(pair( @@ -240,7 +240,7 @@ pub fn parameter_port_list_assignment(s: Span) -> IResult IResult { let (s, a) = symbol("#")(s)?; let (s, b) = paren(list(symbol(","), parameter_port_declaration))(s)?; @@ -250,7 +250,7 @@ pub fn parameter_port_list_declaration(s: Span) -> IResult IResult { let (s, a) = symbol("#")(s)?; let (s, b) = symbol("(")(s)?; @@ -258,7 +258,7 @@ pub fn parameter_port_list_empty(s: Span) -> IResult { Ok((s, ParameterPortList::Empty((a, b, c)))) } -#[trace] +#[parser] pub fn parameter_port_declaration(s: Span) -> IResult { alt(( map(parameter_declaration, |x| { @@ -272,7 +272,7 @@ pub fn parameter_port_declaration(s: Span) -> IResult IResult { let (s, a) = data_type(s)?; let (s, b) = list_of_param_assignments(s)?; @@ -282,7 +282,7 @@ pub fn parameter_port_declaration_param_list(s: Span) -> IResult IResult { let (s, a) = symbol("type")(s)?; let (s, b) = list_of_type_assignments(s)?; @@ -292,13 +292,13 @@ pub fn parameter_port_declaration_type_list(s: Span) -> IResult IResult { let (s, a) = paren(list(symbol(","), port))(s)?; Ok((s, ListOfPorts { nodes: (a,) })) } -#[trace] +#[parser] pub fn list_of_port_declarations(s: Span) -> IResult { let (s, a) = paren(opt(list( symbol(","), @@ -307,7 +307,7 @@ pub fn list_of_port_declarations(s: Span) -> IResult IResult { alt(( port_declaration_inout, @@ -318,7 +318,7 @@ pub fn port_declaration(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn port_declaration_inout(s: Span) -> IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = inout_declaration(s)?; @@ -328,7 +328,7 @@ pub fn port_declaration_inout(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn port_declaration_input(s: Span) -> IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = input_declaration(s)?; @@ -338,7 +338,7 @@ pub fn port_declaration_input(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn port_declaration_output(s: Span) -> IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = output_declaration(s)?; @@ -348,7 +348,7 @@ pub fn port_declaration_output(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn port_declaration_ref(s: Span) -> IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = ref_declaration(s)?; @@ -358,7 +358,7 @@ pub fn port_declaration_ref(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn port_declaration_interface(s: Span) -> IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = interface_port_declaration(s)?; @@ -368,18 +368,18 @@ pub fn port_declaration_interface(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn port(s: Span) -> IResult { alt((port_non_named, port_named))(s) } -#[trace] +#[parser] pub fn port_non_named(s: Span) -> IResult { let (s, a) = opt(port_expression)(s)?; Ok((s, Port::NonNamed(PortNonNamed { nodes: (a,) }))) } -#[trace] +#[parser] pub fn port_named(s: Span) -> IResult { let (s, a) = symbol(".")(s)?; let (s, b) = port_identifier(s)?; @@ -387,7 +387,7 @@ pub fn port_named(s: Span) -> IResult { Ok((s, Port::Named(PortNamed { nodes: (a, b, c) }))) } -#[trace] +#[parser] pub fn port_expression(s: Span) -> IResult { alt(( map(port_reference, |x| PortExpression::PortReference(x)), @@ -395,7 +395,7 @@ pub fn port_expression(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn port_expressio_named(s: Span) -> IResult { let (s, a) = brace(list(symbol(","), port_reference))(s)?; Ok(( @@ -404,14 +404,14 @@ pub fn port_expressio_named(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn port_reference(s: Span) -> IResult { let (s, a) = port_identifier(s)?; let (s, b) = constant_select(s)?; Ok((s, PortReference { nodes: (a, b) })) } -#[trace] +#[parser] pub fn port_direction(s: Span) -> IResult { alt(( map(symbol("input"), |x| PortDirection::Input(x)), @@ -421,21 +421,21 @@ pub fn port_direction(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn net_port_header(s: Span) -> IResult { let (s, a) = opt(port_direction)(s)?; let (s, b) = net_port_type(s)?; Ok((s, NetPortHeader { nodes: (a, b) })) } -#[trace] +#[parser] pub fn variable_port_header(s: Span) -> IResult { let (s, a) = opt(port_direction)(s)?; let (s, b) = variable_port_type(s)?; Ok((s, VariablePortHeader { nodes: (a, b) })) } -#[trace] +#[parser] pub fn interface_port_header(s: Span) -> IResult { alt(( interface_port_header_identifier, @@ -443,7 +443,7 @@ pub fn interface_port_header(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn interface_port_header_identifier(s: Span) -> IResult { let (s, a) = interface_identifier(s)?; let (s, b) = opt(pair(symbol("."), modport_identifier))(s)?; @@ -453,7 +453,7 @@ pub fn interface_port_header_identifier(s: Span) -> IResult IResult { let (s, a) = symbol("interface")(s)?; let (s, b) = opt(pair(symbol("."), modport_identifier))(s)?; @@ -463,7 +463,7 @@ pub fn interface_port_header_interface(s: Span) -> IResult IResult { alt(( ansi_port_declaration_net, @@ -472,7 +472,7 @@ pub fn ansi_port_declaration(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn ansi_port_declaration_net(s: Span) -> IResult { let (s, a) = opt(net_port_header_or_interface_port_header)(s)?; let (s, b) = port_identifier(s)?; @@ -486,7 +486,7 @@ pub fn ansi_port_declaration_net(s: Span) -> IResult )) } -#[trace] +#[parser] pub fn net_port_header_or_interface_port_header( s: Span, ) -> IResult { @@ -500,7 +500,7 @@ pub fn net_port_header_or_interface_port_header( ))(s) } -#[trace] +#[parser] pub fn ansi_port_declaration_port(s: Span) -> IResult { let (s, a) = opt(variable_port_header)(s)?; let (s, b) = port_identifier(s)?; @@ -514,7 +514,7 @@ pub fn ansi_port_declaration_port(s: Span) -> IResult )) } -#[trace] +#[parser] pub fn ansi_port_declaration_paren(s: Span) -> IResult { let (s, a) = opt(port_direction)(s)?; let (s, b) = symbol(".")(s)?; diff --git a/src/parser/source_text/package_items.rs b/src/parser/source_text/package_items.rs index 3a7fd2d..63f4b56 100644 --- a/src/parser/source_text/package_items.rs +++ b/src/parser/source_text/package_items.rs @@ -56,7 +56,7 @@ pub enum AnonymousProgramItem<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn package_item(s: Span) -> IResult { alt(( map(package_or_generate_item_declaration, |x| { @@ -72,7 +72,7 @@ pub fn package_item(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn package_or_generate_item_declaration( s: Span, ) -> IResult { @@ -120,7 +120,7 @@ pub fn package_or_generate_item_declaration( ))(s) } -#[trace] +#[parser] pub fn anonymous_program(s: Span) -> IResult { let (s, a) = symbol("program")(s)?; let (s, b) = symbol(";")(s)?; @@ -134,7 +134,7 @@ pub fn anonymous_program(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn anonymous_program_item(s: Span) -> IResult { alt(( map(task_declaration, |x| { diff --git a/src/parser/source_text/program_items.rs b/src/parser/source_text/program_items.rs index 548a72c..878760c 100644 --- a/src/parser/source_text/program_items.rs +++ b/src/parser/source_text/program_items.rs @@ -63,7 +63,7 @@ pub enum ProgramGenerateItem<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn program_item(s: Span) -> IResult { alt(( map(pair(port_declaration, symbol(";")), |x| { @@ -75,7 +75,7 @@ pub fn program_item(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn non_port_program_item(s: Span) -> IResult { alt(( non_port_program_item_assign, @@ -92,7 +92,7 @@ pub fn non_port_program_item(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn non_port_program_item_assign(s: Span) -> IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = continuous_assign(s)?; @@ -102,7 +102,7 @@ pub fn non_port_program_item_assign(s: Span) -> IResult IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = module_or_generate_item_declaration(s)?; @@ -112,7 +112,7 @@ pub fn non_port_program_item_module(s: Span) -> IResult IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = initial_construct(s)?; @@ -122,7 +122,7 @@ pub fn non_port_program_item_initial(s: Span) -> IResult IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = final_construct(s)?; @@ -132,7 +132,7 @@ pub fn non_port_program_item_final(s: Span) -> IResult )) } -#[trace] +#[parser] pub fn non_port_program_item_assertion(s: Span) -> IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = concurrent_assertion_item(s)?; @@ -142,7 +142,7 @@ pub fn non_port_program_item_assertion(s: Span) -> IResult IResult { alt(( map(loop_generate_construct, |x| { diff --git a/src/parser/source_text/system_verilog_source_text.rs b/src/parser/source_text/system_verilog_source_text.rs index 7536134..43e157c 100644 --- a/src/parser/source_text/system_verilog_source_text.rs +++ b/src/parser/source_text/system_verilog_source_text.rs @@ -437,14 +437,14 @@ pub struct TimeunitsDeclarationTimeprecisionTimeunit<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn source_text(s: Span) -> IResult { let (s, a) = opt(timeunits_declaration)(s)?; let (s, b) = many0(description)(s)?; Ok((s, SourceText { nodes: (a, b) })) } -#[trace] +#[parser] pub fn description(s: Span) -> IResult { alt(( map(module_declaration, |x| Description::ModuleDeclaration(x)), @@ -460,7 +460,7 @@ pub fn description(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn description_package_item(s: Span) -> IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = package_item(s)?; @@ -470,7 +470,7 @@ pub fn description_package_item(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn description_bind_directive(s: Span) -> IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = bind_directive(s)?; @@ -480,7 +480,7 @@ pub fn description_bind_directive(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn module_nonansi_header(s: Span) -> IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = module_keyword(s)?; @@ -498,7 +498,7 @@ pub fn module_nonansi_header(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn module_ansi_header(s: Span) -> IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = module_keyword(s)?; @@ -516,7 +516,7 @@ pub fn module_ansi_header(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn module_declaration(s: Span) -> IResult { alt(( module_declaration_nonansi, @@ -527,7 +527,7 @@ pub fn module_declaration(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn module_declaration_nonansi(s: Span) -> IResult { let (s, a) = module_nonansi_header(s)?; let (s, b) = opt(timeunits_declaration)(s)?; @@ -542,7 +542,7 @@ pub fn module_declaration_nonansi(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn module_declaration_ansi(s: Span) -> IResult { let (s, a) = module_ansi_header(s)?; let (s, b) = opt(timeunits_declaration)(s)?; @@ -557,7 +557,7 @@ pub fn module_declaration_ansi(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn module_declaration_wildcard(s: Span) -> IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = module_keyword(s)?; @@ -577,7 +577,7 @@ pub fn module_declaration_wildcard(s: Span) -> IResult )) } -#[trace] +#[parser] pub fn module_declaration_extern_nonansi(s: Span) -> IResult { let (s, a) = symbol("extern")(s)?; let (s, b) = module_nonansi_header(s)?; @@ -587,7 +587,7 @@ pub fn module_declaration_extern_nonansi(s: Span) -> IResult IResult { let (s, a) = symbol("extern")(s)?; let (s, b) = module_ansi_header(s)?; @@ -597,7 +597,7 @@ pub fn module_declaration_extern_ansi(s: Span) -> IResult IResult { alt(( map(symbol("module"), |x| ModuleKeyword::Module(x)), @@ -605,7 +605,7 @@ pub fn module_keyword(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn interface_declaration(s: Span) -> IResult { alt(( interface_declaration_nonansi, @@ -616,7 +616,7 @@ pub fn interface_declaration(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn interface_declaration_nonansi(s: Span) -> IResult { let (s, a) = interface_nonansi_header(s)?; let (s, b) = opt(timeunits_declaration)(s)?; @@ -631,7 +631,7 @@ pub fn interface_declaration_nonansi(s: Span) -> IResult IResult { let (s, a) = interface_ansi_header(s)?; let (s, b) = opt(timeunits_declaration)(s)?; @@ -646,7 +646,7 @@ pub fn interface_declaration_ansi(s: Span) -> IResult IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = symbol("interface")(s)?; @@ -666,7 +666,7 @@ pub fn interface_declaration_wildcard(s: Span) -> IResult IResult { let (s, a) = symbol("extern")(s)?; let (s, b) = interface_nonansi_header(s)?; @@ -676,7 +676,7 @@ pub fn interface_declaration_extern_nonansi(s: Span) -> IResult IResult { let (s, a) = symbol("extern")(s)?; let (s, b) = interface_ansi_header(s)?; @@ -686,7 +686,7 @@ pub fn interface_declaration_extern_ansi(s: Span) -> IResult IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = symbol("interface")(s)?; @@ -704,7 +704,7 @@ pub fn interface_nonansi_header(s: Span) -> IResult IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = symbol("interface")(s)?; @@ -722,7 +722,7 @@ pub fn interface_ansi_header(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn program_declaration(s: Span) -> IResult { alt(( program_declaration_nonansi, @@ -733,7 +733,7 @@ pub fn program_declaration(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn program_declaration_nonansi(s: Span) -> IResult { let (s, a) = program_nonansi_header(s)?; let (s, b) = opt(timeunits_declaration)(s)?; @@ -748,7 +748,7 @@ pub fn program_declaration_nonansi(s: Span) -> IResult )) } -#[trace] +#[parser] pub fn program_declaration_ansi(s: Span) -> IResult { let (s, a) = program_ansi_header(s)?; let (s, b) = opt(timeunits_declaration)(s)?; @@ -763,7 +763,7 @@ pub fn program_declaration_ansi(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn program_declaration_wildcard(s: Span) -> IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = symbol("program")(s)?; @@ -782,7 +782,7 @@ pub fn program_declaration_wildcard(s: Span) -> IResult IResult { let (s, a) = symbol("extern")(s)?; let (s, b) = program_nonansi_header(s)?; @@ -792,7 +792,7 @@ pub fn program_declaration_extern_nonansi(s: Span) -> IResult IResult { let (s, a) = symbol("extern")(s)?; let (s, b) = program_ansi_header(s)?; @@ -802,7 +802,7 @@ pub fn program_declaration_extern_ansi(s: Span) -> IResult IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = symbol("prgogram")(s)?; @@ -820,7 +820,7 @@ pub fn program_nonansi_header(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn program_ansi_header(s: Span) -> IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = symbol("program")(s)?; @@ -838,7 +838,7 @@ pub fn program_ansi_header(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn checker_declaration(s: Span) -> IResult { let (s, a) = symbol("checker")(s)?; let (s, b) = checker_identifier(s)?; @@ -855,7 +855,7 @@ pub fn checker_declaration(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn class_declaration(s: Span) -> IResult { let (s, a) = opt(map(symbol("virtual"), |x| Virtual { nodes: (x,) }))(s)?; let (s, b) = symbol("class")(s)?; @@ -883,14 +883,14 @@ pub fn class_declaration(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn interface_class_type(s: Span) -> IResult { let (s, a) = ps_class_identifier(s)?; let (s, b) = opt(parameter_value_assignment)(s)?; Ok((s, InterfaceClassType { nodes: (a, b) })) } -#[trace] +#[parser] pub fn interface_class_declaration(s: Span) -> IResult { let (s, a) = symbol("interface")(s)?; let (s, b) = symbol("class")(s)?; @@ -912,7 +912,7 @@ pub fn interface_class_declaration(s: Span) -> IResult IResult { alt(( map(type_declaration, |x| InterfaceClassItem::TypeDeclaration(x)), @@ -927,7 +927,7 @@ pub fn interface_class_item(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn interface_class_item_method(s: Span) -> IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = interface_class_method(s)?; @@ -937,7 +937,7 @@ pub fn interface_class_item_method(s: Span) -> IResult )) } -#[trace] +#[parser] pub fn interface_class_method(s: Span) -> IResult { let (s, a) = symbol("pure")(s)?; let (s, b) = symbol("virtual")(s)?; @@ -951,7 +951,7 @@ pub fn interface_class_method(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn package_declaration(s: Span) -> IResult { let (s, a) = many0(attribute_instance)(s)?; let (s, b) = symbol("package")(s)?; @@ -970,7 +970,7 @@ pub fn package_declaration(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn timeunits_declaration(s: Span) -> IResult { alt(( timeunits_declaration_timeunit_timeprecision, @@ -980,7 +980,7 @@ pub fn timeunits_declaration(s: Span) -> IResult { ))(s) } -#[trace] +#[parser] pub fn timeunits_declaration_timeunit(s: Span) -> IResult { let (s, a) = symbol("timeunit")(s)?; let (s, b) = time_literal(s)?; @@ -994,7 +994,7 @@ pub fn timeunits_declaration_timeunit(s: Span) -> IResult IResult { let (s, a) = symbol("timeprecision")(s)?; let (s, b) = time_literal(s)?; @@ -1005,7 +1005,7 @@ pub fn timeunits_declaration_timeprecision(s: Span) -> IResult IResult { @@ -1023,7 +1023,7 @@ pub fn timeunits_declaration_timeunit_timeprecision( )) } -#[trace] +#[parser] pub fn timeunits_declaration_timeprecision_timeunit( s: Span, ) -> IResult { diff --git a/src/parser/specify_section/specify_block_declaration.rs b/src/parser/specify_section/specify_block_declaration.rs index 4d2e0a7..810e57a 100644 --- a/src/parser/specify_section/specify_block_declaration.rs +++ b/src/parser/specify_section/specify_block_declaration.rs @@ -14,7 +14,7 @@ pub struct SpecifyBlock<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn specify_block(s: Span) -> IResult { Err(Err::Error(make_error(s, ErrorKind::Fix))) } diff --git a/src/parser/specify_section/specify_block_terminals.rs b/src/parser/specify_section/specify_block_terminals.rs index 4bfbae0..8f0022e 100644 --- a/src/parser/specify_section/specify_block_terminals.rs +++ b/src/parser/specify_section/specify_block_terminals.rs @@ -43,24 +43,24 @@ pub struct OutputIdentifierInterface<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn specify_input_terminal_descriptor(s: Span) -> IResult { Err(Err::Error(make_error(s, ErrorKind::Fix))) } -#[trace] +#[parser] pub fn specify_output_terminal_descriptor( s: Span, ) -> IResult { Err(Err::Error(make_error(s, ErrorKind::Fix))) } -#[trace] +#[parser] pub fn input_identifier(s: Span) -> IResult { Err(Err::Error(make_error(s, ErrorKind::Fix))) } -#[trace] +#[parser] pub fn output_identifier(s: Span) -> IResult { Err(Err::Error(make_error(s, ErrorKind::Fix))) } diff --git a/src/parser/specify_section/specify_path_delays.rs b/src/parser/specify_section/specify_path_delays.rs index 3c71a01..9d3b63e 100644 --- a/src/parser/specify_section/specify_path_delays.rs +++ b/src/parser/specify_section/specify_path_delays.rs @@ -14,7 +14,7 @@ pub struct EdgeIdentifier<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn edge_identifier(s: Span) -> IResult { Err(Err::Error(make_error(s, ErrorKind::Fix))) } diff --git a/src/parser/udp_declaration_and_instantiation/udp_declaration.rs b/src/parser/udp_declaration_and_instantiation/udp_declaration.rs index fbf0c0a..ed4ee9c 100644 --- a/src/parser/udp_declaration_and_instantiation/udp_declaration.rs +++ b/src/parser/udp_declaration_and_instantiation/udp_declaration.rs @@ -14,7 +14,7 @@ pub struct UdpDeclaration<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn udp_declaration(s: Span) -> IResult { Err(Err::Error(make_error(s, ErrorKind::Fix))) } diff --git a/src/parser/udp_declaration_and_instantiation/udp_instantiation.rs b/src/parser/udp_declaration_and_instantiation/udp_instantiation.rs index 9a98732..41950e4 100644 --- a/src/parser/udp_declaration_and_instantiation/udp_instantiation.rs +++ b/src/parser/udp_declaration_and_instantiation/udp_instantiation.rs @@ -36,7 +36,7 @@ pub struct UdpInstance<'a> { // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn udp_instantiation(s: Span) -> IResult { let (s, a) = udp_identifier(s)?; let (s, b) = opt(drive_strength)(s)?; @@ -51,7 +51,7 @@ pub fn udp_instantiation(s: Span) -> IResult { )) } -#[trace] +#[parser] pub fn udp_instance(s: Span) -> IResult { let (s, a) = opt(name_of_instance)(s)?; let (s, b) = paren(tuple(( diff --git a/src/parser/utils.rs b/src/parser/utils.rs index e10eca1..1db957e 100644 --- a/src/parser/utils.rs +++ b/src/parser/utils.rs @@ -190,7 +190,7 @@ where // ----------------------------------------------------------------------------- -#[trace] +#[parser] pub fn white_space(s: Span) -> IResult { alt(( map(multispace1, |x| WhiteSpace::Space(x)),