Handle invalid chars better, and do small cleanups around error output. (#657)

This adds a test for invalid characters (that would've failed before, because the printed char isn't escaped). Not sure if there's a good way to test the PrintDiagnostic code, as it appears to occur on bison parser errors, which I'm just not sure how to trigger.
This commit is contained in:
Jon Meow
2021-07-20 12:04:45 -07:00
committed by GitHub
parent 1ddb1a264a
commit 368fc0063c
6 changed files with 23 additions and 14 deletions
+5 -7
View File
@@ -61,7 +61,7 @@
#include "executable_semantics/syntax/syntax_helpers.h"
#include "executable_semantics/syntax/parse_and_lex_context.h"
}
} // %code top
%code requires {
#include <optional>
@@ -73,21 +73,19 @@
namespace Carbon {
class ParseAndLexContext;
}
} // namespace Carbon
}
} // %code requires
%code {
extern int yylineno;
void yy::parser::error(
const location_type&, const std::string& message)
{
void yy::parser::error(const location_type&, const std::string& message) {
context.PrintDiagnostic(message, yylineno);
}
}
} // %code
%token <int> integer_literal
%token <char*> identifier