Я работаю над парсером cison C++. В большинстве примеров есть метод ошибок с параметром location&
в .y файле, но я не уверен, как получить метод location_type для вызова этого метода.Обработка информации о местоположении bison C++ parser error
typedef location location_type;
void
yy::c_parser::error (const location_type& l,
const std::string& m)
{
driver.error (l, m);
}
Это пример отрывок из http://panthema.net/2007/flex-bison-cpp-example/,
if (!driver.calc.existsVariable(*$1)) {
error(yyloc, std::string("Unknown variable \"") + *$1 + "\"");
Однако, я получил сообщение об ошибке parser.yy:109: error: ‘yyloc’ was not declared in this scope
при компиляции.
Может быть связано с [SO/how-do-flex-support-bison-location-exact] (http://stackoverflow.com/questions/656703/how-does-flex-support-bison-location-exactly) – Jarod42