diff --git a/src/flatc.cpp b/src/flatc.cpp index 3833f3dec..1362c5953 100644 --- a/src/flatc.cpp +++ b/src/flatc.cpp @@ -30,8 +30,10 @@ void FlatCompiler::ParseFile( include_directories.push_back(local_include_directory.c_str()); include_directories.push_back(nullptr); if (!parser.Parse(contents.c_str(), &include_directories[0], - filename.c_str())) + filename.c_str())) { Error(parser.error_, false, false); + } + if (!parser.error_.empty()) { Warn(parser.error_, false); } include_directories.pop_back(); include_directories.pop_back(); } diff --git a/src/idl_parser.cpp b/src/idl_parser.cpp index 159238a69..ba28ae6f2 100644 --- a/src/idl_parser.cpp +++ b/src/idl_parser.cpp @@ -99,8 +99,10 @@ void DeserializeDoc( std::vector &doc, } void Parser::Message(const std::string &msg) { - error_ = file_being_parsed_.length() ? AbsolutePath(file_being_parsed_) : ""; + if (!error_.empty()) error_ += "\n"; // log all warnings and errors + error_ += file_being_parsed_.length() ? AbsolutePath(file_being_parsed_) : ""; // clang-format off + #ifdef _WIN32 // MSVC alike error_ += "(" + NumToString(line_) + ", " + NumToString(CursorPosition()) + ")";