X-Git-Url: http://developer.intra2net.com/git/?p=libt2n;a=blobdiff_plain;f=codegen%2Fmain.cpp;h=cd483b637d410180bea78aea801687355538d82a;hp=a76baa77d481aefad4a3545aa572fdaa3bf1bb1c;hb=fe41e3c5d9c602adb0cbb8f996deb7a5e3eab57a;hpb=5f5fa5fc0cbb49c63e1ab1dee6722e4b89c727ea diff --git a/codegen/main.cpp b/codegen/main.cpp index a76baa7..cd483b6 100644 --- a/codegen/main.cpp +++ b/codegen/main.cpp @@ -226,6 +226,20 @@ std::ostream &operator<<(std::ostream &o, const t2n_procedure &f) { return o; } +std::pair +get_file_and_line(const xmlpp::Element* root, const xmlpp::Element* element) +{ + return std::pair(get_file(root, element->get_attribute("file")->get_value()), + boost::lexical_cast(element->get_attribute("line")->get_value())-1); +} + +std::string +get_file_and_line_as_string(const xmlpp::Element* root, const xmlpp::Element* element) +{ + std::pair fl(get_file_and_line(root,element)); + return std::string(fl.first)+":"+boost::lexical_cast(fl.second); +} + class Parser { public: @@ -284,13 +298,14 @@ protected: if (f.args.back().second.name.empty()) { assert(element->get_attribute("file")); assert(element->get_attribute("line")); - throw parse_error(get_file(root, element->get_attribute("file")->get_value()), - boost::lexical_cast(element->get_attribute("line")->get_value())-1, + std::pair file_and_line(get_file_and_line(root, element)); + throw parse_error(file_and_line.first, + file_and_line.second, std::string("type of parameter `")+f.args.back().first+"' not (yet?) supported"); } } } - std::cerr << "Found function: " << f << std::endl; + std::cerr << get_file_and_line_as_string(root, element) << ":\texport procedure: " << f << std::endl; m_procedures.push_back(f); } @@ -540,7 +555,7 @@ main(int argc, char* argv[]) std::copy(p.begin(), p.end(), std::back_inserter(procedures)); } - std::cerr << "Procedures:" << std::endl; + std::cerr << "All procedures:" << std::endl; for (std::list::const_iterator it=procedures.begin();it!=procedures.end();++it) std::cerr << *it << ";" << std::endl;