diff --git a/passes/techmap/libparse.cc b/passes/techmap/libparse.cc index 09afcf9f3..d85e9d915 100644 --- a/passes/techmap/libparse.cc +++ b/passes/techmap/libparse.cc @@ -436,7 +436,9 @@ LibertyAst *LibertyParser::parse() if (tok == ':' && ast->value.empty()) { tok = lexer(ast->value); if (tok == 'v') { - tok = lexer(str); + tok = lexer(str); + if (tok == '[') + tok = parse_vector_range(tok); } while (tok == '+' || tok == '-' || tok == '*' || tok == '/' || tok == '!') { ast->value += tok; diff --git a/passes/techmap/libparse.h b/passes/techmap/libparse.h index 686a2b49f..61ae4d334 100644 --- a/passes/techmap/libparse.h +++ b/passes/techmap/libparse.h @@ -105,8 +105,8 @@ namespace Yosys */ int lexer(std::string &str); - void report_unexpected_token(int tok); - int parse_vector_range(int tok); + void report_unexpected_token(int tok); + int parse_vector_range(int tok); LibertyAst *parse(); void error() const; void error(const std::string &str) const;