diff --git a/src/cst/net_variable_assignment.rs b/src/cst/net_variable_assignment.rs index bec6e9e..f6c3fe8 100644 --- a/src/cst/net_variable_assignment.rs +++ b/src/cst/net_variable_assignment.rs @@ -26,8 +26,7 @@ impl NetVariableAssignment { assert_eq!(json_children[3]["tag"], ";"); } - let json_symbol_identifier = Tools::match_tags( - vec![&json_children[0]], + let lpvalue_paths = [ vec![ Tag::LP_VALUE, Tag::REFERENCE_CALL_BASE, @@ -36,7 +35,34 @@ impl NetVariableAssignment { Tag::UNQUALIFIED_ID, Tag::SYMBOL_IDENTIFIER, ], - ); + vec![ + Tag::LP_VALUE, + Tag::BRACEGROUP, + Tag::OPEN_RANGE_LIST, + Tag::EXPRESSION, + Tag::REFERENCE_CALL_BASE, + Tag::REFERENCE, + Tag::LOCAL_ROOT, + Tag::UNQUALIFIED_ID, + Tag::SYMBOL_IDENTIFIER, + ], + ]; + + let json_symbol_identifier: Vec<_> = lpvalue_paths + .iter() + .flat_map(|x|Tools::match_tags(vec![&json_children[0]], x.to_vec())) + .collect(); + // let json_symbol_identifier = Tools::match_tags( + // vec![&json_children[0]], + // vec![ + // Tag::LP_VALUE, + // Tag::REFERENCE_CALL_BASE, + // Tag::REFERENCE, + // Tag::LOCAL_ROOT, + // Tag::UNQUALIFIED_ID, + // Tag::SYMBOL_IDENTIFIER, + // ], + // ); //assert_eq!(json_symbol_identifier.len(), 1); (json_symbol_identifier[0], &json_children[2])