runtime_error(format("%s:%d: %s", loc.name, loc.line, message))
{ }
+syntax_error::syntax_error(const Location &loc, const string &token, const string &message):
+ invalid_shader_source(loc, "Syntax error near '%s': %s", token, message)
+{ }
+
parse_error::parse_error(const Location &loc, const string &token, const string &expected):
invalid_shader_source(loc, "Parse error at '%s': expected %s", token, expected)
{ }