My namespace is ucc;
I've named the parser uccParser;

This function below I find in the generated ucc.tab.cpp file
  void
  uccParser::error (const syntax_error& yyexc)
  {
    error (yyexc.location, yyexc.what ());
  }

unfortunately the ucc.tab.hpp file that is generated does not include a
definition of this function inside the class it creates.

Here is some of the top of the grammar file that may have some pertinent
information.

--------------------------
%skeleton "lalr1.cc"
%require "3.7"

%define parse.assert

%defines
%locations

%define api.value.type variant
//%define api.token.constructor
%define api.token.raw

%define api.namespace{ucc}
%define api.parser.class {uccParser}

%code requires {
namespace ucc{
class Compiler;
class TableEntry;
}
#include "cpptypes.hpp"
#include "List.hpp"
#include "type.hpp"
using namespace ucc;
}

%parse-param{ Compiler& compiler }

--------------------------------

Below is the error I get at the linking stage after compiling the objects.
---------------------------------

Undefined symbols for architecture x86_64:
  "ucc::uccParser::error(ucc::location const&, std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&)",
referenced from:
      vtable for ucc::uccParser in ucc-a858ea.o

------------------------------------

Thoughts? Thank you in advance.

Reply via email to