From 3a7daa174fba8d7480a38bdf83ccf62280c0f278 Mon Sep 17 00:00:00 2001 From: dalance Date: Wed, 24 Jul 2019 16:58:45 +0900 Subject: [PATCH] Apply packrat_parser --- src/parser/behavioral_statements/patterns.rs | 2 ++ src/parser/declarations/net_and_variable_types.rs | 4 ++++ src/parser/expressions/expression_leftside_values.rs | 3 +++ src/parser/expressions/operators.rs | 2 ++ src/parser/expressions/primaries.rs | 1 + src/parser/expressions/subroutine_calls.rs | 2 ++ src/parser/general/identifiers.rs | 3 +++ 7 files changed, 17 insertions(+) diff --git a/src/parser/behavioral_statements/patterns.rs b/src/parser/behavioral_statements/patterns.rs index ac7c7b5..3e46995 100644 --- a/src/parser/behavioral_statements/patterns.rs +++ b/src/parser/behavioral_statements/patterns.rs @@ -4,6 +4,7 @@ use nom::branch::*; use nom::combinator::*; use nom::sequence::*; use nom::IResult; +use nom_packrat::packrat_parser; // ----------------------------------------------------------------------------- @@ -253,6 +254,7 @@ pub fn assignment_pattern_key(s: Span) -> IResult { ))(s) } +#[packrat_parser] #[parser] pub fn assignment_pattern_expression(s: Span) -> IResult { let (s, a) = opt(assignment_pattern_expression_type)(s)?; diff --git a/src/parser/declarations/net_and_variable_types.rs b/src/parser/declarations/net_and_variable_types.rs index 00e9b07..c944d89 100644 --- a/src/parser/declarations/net_and_variable_types.rs +++ b/src/parser/declarations/net_and_variable_types.rs @@ -5,6 +5,7 @@ use nom::combinator::*; use nom::multi::*; use nom::sequence::*; use nom::IResult; +use nom_packrat::packrat_parser; // ----------------------------------------------------------------------------- @@ -285,6 +286,7 @@ pub struct TypeReferenceDataType { // ----------------------------------------------------------------------------- +#[packrat_parser] #[parser] pub fn casting_type(s: Span) -> IResult { alt(( @@ -459,6 +461,7 @@ pub fn enum_name_declaration(s: Span) -> IResult { Ok((s, EnumNameDeclaration { nodes: (a, b, c) })) } +#[packrat_parser] #[parser] pub fn class_scope(s: Span) -> IResult { let (s, a) = class_type(s)?; @@ -592,6 +595,7 @@ pub fn signing(s: Span) -> IResult { ))(s) } +#[packrat_parser] #[parser] pub fn simple_type(s: Span) -> IResult { alt(( diff --git a/src/parser/expressions/expression_leftside_values.rs b/src/parser/expressions/expression_leftside_values.rs index b048403..8f42c41 100644 --- a/src/parser/expressions/expression_leftside_values.rs +++ b/src/parser/expressions/expression_leftside_values.rs @@ -3,6 +3,7 @@ use crate::parser::*; use nom::branch::*; use nom::combinator::*; use nom::IResult; +use nom_packrat::packrat_parser; // ----------------------------------------------------------------------------- @@ -72,6 +73,7 @@ pub struct NonrangeVariableLvalue { // ----------------------------------------------------------------------------- +#[packrat_parser] #[parser] pub fn net_lvalue(s: Span) -> IResult { alt((net_lvalue_identifier, net_lvalue_lvalue, net_lvalue_pattern))(s) @@ -106,6 +108,7 @@ pub fn net_lvalue_lvalue(s: Span) -> IResult { )) } +#[packrat_parser] #[parser] pub fn variable_lvalue(s: Span) -> IResult { alt(( diff --git a/src/parser/expressions/operators.rs b/src/parser/expressions/operators.rs index 404e837..382744f 100644 --- a/src/parser/expressions/operators.rs +++ b/src/parser/expressions/operators.rs @@ -2,6 +2,7 @@ use crate::ast::*; use crate::parser::*; use nom::branch::*; use nom::IResult; +use nom_packrat::packrat_parser; // ----------------------------------------------------------------------------- @@ -32,6 +33,7 @@ pub struct BinaryModulePathOperator { // ----------------------------------------------------------------------------- +#[packrat_parser] #[parser] pub fn unary_operator(s: Span) -> IResult { let (s, a) = alt(( diff --git a/src/parser/expressions/primaries.rs b/src/parser/expressions/primaries.rs index 8c7470f..4b09fcb 100644 --- a/src/parser/expressions/primaries.rs +++ b/src/parser/expressions/primaries.rs @@ -474,6 +474,7 @@ pub fn range_expression(s: Span) -> IResult { ))(s) } +#[packrat_parser] #[parser] pub fn primary_literal(s: Span) -> IResult { alt(( diff --git a/src/parser/expressions/subroutine_calls.rs b/src/parser/expressions/subroutine_calls.rs index 77e3e53..22cb3b9 100644 --- a/src/parser/expressions/subroutine_calls.rs +++ b/src/parser/expressions/subroutine_calls.rs @@ -5,6 +5,7 @@ use nom::combinator::*; use nom::multi::*; use nom::sequence::*; use nom::IResult; +use nom_packrat::packrat_parser; // ----------------------------------------------------------------------------- @@ -224,6 +225,7 @@ pub fn system_tf_call_arg_expression(s: Span) -> IResult { )) } +#[packrat_parser] #[parser] pub fn subroutine_call(s: Span) -> IResult { alt(( diff --git a/src/parser/general/identifiers.rs b/src/parser/general/identifiers.rs index e4498c5..b6c192d 100644 --- a/src/parser/general/identifiers.rs +++ b/src/parser/general/identifiers.rs @@ -885,6 +885,7 @@ pub fn package_identifier(s: Span) -> IResult { Ok((s, PackageIdentifier { nodes: (a,) })) } +#[packrat_parser] #[parser] pub fn package_scope(s: Span) -> IResult { alt((package_scope_package, map(unit, |x| PackageScope::Unit(x))))(s) @@ -1074,6 +1075,7 @@ pub fn ps_or_hierarchical_tf_identifier_package_scope( )) } +#[packrat_parser] #[parser] pub fn ps_parameter_identifier(s: Span) -> IResult { alt(( @@ -1106,6 +1108,7 @@ pub fn ps_parameter_identifier_generate(s: Span) -> IResult IResult { let (s, a) = opt(local_or_package_scope_or_class_scope)(s)?;