Fix constant_expression_ternary priority #30

This commit is contained in:
dalance 2021-01-28 11:55:28 +09:00
parent fdadc2ff61
commit 1b36e0d29b
3 changed files with 9 additions and 2 deletions

View File

@ -2,6 +2,8 @@
## [Unreleased](https://github.com/dalance/sv-parser/compare/v0.10.5...Unreleased) - ReleaseDate ## [Unreleased](https://github.com/dalance/sv-parser/compare/v0.10.5...Unreleased) - ReleaseDate
* [Fixed] constant_expression_ternary priority [#30](https://github.com/dalance/sv-parser/issues/30)
## [v0.10.5](https://github.com/dalance/sv-parser/compare/v0.10.4...v0.10.5) - 2021-01-19 ## [v0.10.5](https://github.com/dalance/sv-parser/compare/v0.10.4...v0.10.5) - 2021-01-19
* [Fixed] missing comment after macro name [#29](https://github.com/dalance/sv-parser/issues/29) * [Fixed] missing comment after macro name [#29](https://github.com/dalance/sv-parser/issues/29)

View File

@ -78,8 +78,8 @@ pub(crate) fn expression_or_cond_pattern_ternary(
#[packrat_parser] #[packrat_parser]
pub(crate) fn constant_expression(s: Span) -> IResult<Span, ConstantExpression> { pub(crate) fn constant_expression(s: Span) -> IResult<Span, ConstantExpression> {
alt(( alt((
constant_expression_binary,
constant_expression_ternary, constant_expression_ternary,
constant_expression_binary,
constant_expression_unary, constant_expression_unary,
map(constant_primary, |x| { map(constant_primary, |x| {
ConstantExpression::ConstantPrimary(Box::new(x)) ConstantExpression::ConstantPrimary(Box::new(x))

View File

@ -457,6 +457,11 @@ mod unit {
`end_keywords"##, `end_keywords"##,
Ok((_, _)) Ok((_, _))
); );
test!(
source_text,
r##"module a; localparam a = (A == 1) ? 1 - 1 : (A == 1) ? 1 - 1 : 1 - 1; endmodule"##,
Ok((_, _))
);
} }
} }
@ -15930,7 +15935,7 @@ mod error {
fn debug() { fn debug() {
test!( test!(
source_text, source_text,
r##"module a; always begin a = b.c'(0); end endmodule"##, r##"module a; localparam a = (A == 1) ? 1 - 1 : (A == 1) ? 1 - 1 : 1 - 1; endmodule"##,
Ok((_, _)) Ok((_, _))
); );
nom_tracable::cumulative_histogram(); nom_tracable::cumulative_histogram();