3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-04-13 04:28:18 +00:00

Liberty file newline handling is more relaxed. More descriptive error message

This commit is contained in:
Niels Moseley 2018-11-03 18:38:49 +01:00
parent d1e8249f9a
commit 04cd179696

View file

@ -159,7 +159,7 @@ int LibertyParser::lexer(std::string &str)
if (c == '\n') { if (c == '\n') {
line++; line++;
return ';'; return 'n';
} }
// if (c >= 32 && c < 255) // if (c >= 32 && c < 255)
@ -175,7 +175,7 @@ LibertyAst *LibertyParser::parse()
int tok = lexer(str); int tok = lexer(str);
while (tok == ';') while (tok == 'n')
tok = lexer(str); tok = lexer(str);
if (tok == '}' || tok < 0) if (tok == '}' || tok < 0)
@ -194,6 +194,9 @@ LibertyAst *LibertyParser::parse()
if (tok == ';') if (tok == ';')
break; break;
if (tok == 'n')
continue;
if (tok == ':' && ast->value.empty()) { if (tok == ':' && ast->value.empty()) {
tok = lexer(ast->value); tok = lexer(ast->value);
if (tok != 'v') if (tok != 'v')
@ -249,14 +252,14 @@ LibertyAst *LibertyParser::parse()
void LibertyParser::error() void LibertyParser::error()
{ {
log_error("Syntax error in line %d.\n", line); log_error("Syntax error in liberty file on line %d.\n", line);
} }
#else #else
void LibertyParser::error() void LibertyParser::error()
{ {
fprintf(stderr, "Syntax error in line %d.\n", line); fprintf(stderr, "Syntax error in liberty file on line %d.\n", line);
exit(1); exit(1);
} }