3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-04-24 01:25:33 +00:00

Support array ranges for identifiers in the Liberty parser.

This change only handles the case `id : id[range] ;`.
This commit is contained in:
Sean Luchen 2025-03-31 10:47:39 -07:00
parent ac1033ecd5
commit 23f59e0196
2 changed files with 5 additions and 3 deletions

View file

@ -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;

View file

@ -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;