From 3125a2f0d40492fef3c1813fe8addcb9168adf57 Mon Sep 17 00:00:00 2001 From: dalance Date: Wed, 18 Sep 2019 17:29:01 +0900 Subject: [PATCH] Fix constant_primary --- sv-parser-parser/src/expressions/primaries.rs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/sv-parser-parser/src/expressions/primaries.rs b/sv-parser-parser/src/expressions/primaries.rs index a978798..b8e3202 100644 --- a/sv-parser-parser/src/expressions/primaries.rs +++ b/sv-parser-parser/src/expressions/primaries.rs @@ -13,9 +13,13 @@ pub(crate) fn constant_primary(s: Span) -> IResult { map(primary_literal, |x| { ConstantPrimary::PrimaryLiteral(Box::new(x)) }), - map(constant_function_call, |x| { - ConstantPrimary::ConstantFunctionCall(Box::new(x)) + map(constant_cast, |x| { + ConstantPrimary::ConstantCast(Box::new(x)) }), + map( + terminated(constant_function_call, peek(not(one_of("[")))), + |x| ConstantPrimary::ConstantFunctionCall(Box::new(x)), + ), constant_primary_ps_parameter, constant_primary_specparam, map(genvar_identifier, |x| { @@ -29,9 +33,6 @@ pub(crate) fn constant_primary(s: Span) -> IResult { ConstantPrimary::ConstantLetExpression(Box::new(x)) }), constant_primary_mintypmax_expression, - map(constant_cast, |x| { - ConstantPrimary::ConstantCast(Box::new(x)) - }), map(type_reference, |x| { ConstantPrimary::TypeReference(Box::new(x)) }),