Support array ranges for identifiers in the Liberty parser.
This change only handles the case `id : id[range] ;`.
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user