3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-04-11 03:33:36 +00:00

Factor report_unexpected_token out into its own function.

This commit is contained in:
Sean Luchen 2025-03-31 10:44:23 -07:00
parent 314842d2a0
commit 0a6d9f4dc9
2 changed files with 30 additions and 40 deletions

View file

@ -332,6 +332,32 @@ int LibertyParser::lexer(std::string &str)
return c;
}
void LibertyParser::report_unexpected_token(int tok)
{
std::string eReport;
switch(tok)
{
case 'n':
error("Unexpected newline.");
break;
case '[':
case ']':
case '}':
case '{':
case '\"':
case ':':
eReport = "Unexpected '";
eReport += static_cast<char>(tok);
eReport += "'.";
error(eReport);
break;
default:
eReport = "Unexpected token: ";
eReport += static_cast<char>(tok);
error(eReport);
}
}
LibertyAst *LibertyParser::parse()
{
std::string str;
@ -350,26 +376,7 @@ LibertyAst *LibertyParser::parse()
return NULL;
if (tok != 'v') {
std::string eReport;
switch(tok)
{
case 'n':
error("Unexpected newline.");
break;
case '[':
case ']':
case '}':
case '{':
case '\"':
case ':':
eReport = "Unexpected '";
eReport += static_cast<char>(tok);
eReport += "'.";
error(eReport);
break;
default:
error();
}
report_unexpected_token(tok);
}
LibertyAst *ast = new LibertyAst;
@ -460,25 +467,7 @@ LibertyAst *LibertyParser::parse()
continue;
}
if (tok != 'v') {
std::string eReport;
switch(tok)
{
case 'n':
continue;
case '[':
case ']':
case '}':
case '{':
case '\"':
case ':':
eReport = "Unexpected '";
eReport += static_cast<char>(tok);
eReport += "'.";
error(eReport);
break;
default:
error();
}
report_unexpected_token(tok);
}
ast->args.push_back(arg);
}
@ -495,7 +484,7 @@ LibertyAst *LibertyParser::parse()
break;
}
error();
report_unexpected_token(tok);
}
return ast;

View file

@ -105,6 +105,7 @@ namespace Yosys
*/
int lexer(std::string &str);
void report_unexpected_token(int tok);
LibertyAst *parse();
void error() const;
void error(const std::string &str) const;