diff --git a/src/tools/specials_parse.cpp b/src/tools/specials_parse.cpp index 7f363aa3..b431b10c 100644 --- a/src/tools/specials_parse.cpp +++ b/src/tools/specials_parse.cpp @@ -104,6 +104,13 @@ auto SpecialParser::check_error(const Rule::scanner_t&, spirit::parser_error warned; + if(!warned.count(i)) + std::cout << "Warning: Missing opcode definition for special node type with ID " << i << std::endl; + warned.insert(i); +} + static void init_specials_parse() { opcode.add((*eSpecType::NONE).opcode().c_str(), eSpecType::NONE); // Fill in all the opcodes and check for missing types. @@ -117,7 +124,7 @@ static void init_specials_parse() { eSpecCat category = getNodeCategory(check); if(category == eSpecCat::INVALID) continue; if((*check).opcode().empty()) - std::cout << "Warning: Missing opcode definition for special node type with ID " << i << std::endl; + warn_missing_opcode(i); else opcode.add((*check).opcode().c_str(), check); } }