ViElement ViTrainer::exportData() { ViElement element("trainer"); element.addChild("name", name("Trainer")); element.addChild("iterationlimit", iterationLimit()); element.addChild("errorlimit", errorLimit()); element.addChild("learningrate", learningRate()); ViElement errorFunctions("errorfunctions"); for(int i = 0; i < mErrorFunctions.size(); ++i) { errorFunctions.addChild(mErrorFunctions[i]->exportData()); } element.addChild(errorFunctions); return element; }
void Options::parseCommandLine() { QCommandLineParser parser; parser.setSingleDashWordOptionMode(QCommandLineParser::ParseAsLongOptions); parser.addHelpOption(); parser.addVersionOption(); parser.addPositionalArgument("files", "Files to compile.", "[files...]"); QCommandLineOption include(QStringList() << "i" << "include", "Include directories.", "include", ""); parser.addOption(include); QCommandLineOption errorLimit("error-limit", "Stop after N errors. [Default: 20]", "N", "20"); parser.addOption(errorLimit); QCommandLineOption outputFile(QStringList() << "o" << "out", "Output to file or stdout if empty.", "file", ""); parser.addOption(outputFile); QCommandLineOption outputType(QStringList() << "e" << "emit", "Specify the type of output. [Default: obj]\n type=obj|llvm|ast", "type", "obj"); parser.addOption(outputType); QCommandLineOption readFromStdin("stdin", "Read from stdin."); parser.addOption(readFromStdin); parser.process(*QCoreApplication::instance()); m_files = parser.positionalArguments(); m_includeDirs = parser.values(include); m_errorLimit = parser.value(errorLimit).toInt(); m_outputFile = parser.value(outputFile); m_outputType = parser.value(outputType); if (m_outputType != "obj" && m_outputType != "llvm" && m_outputType != "ast") m_outputType = "obj"; m_readFromStdin = parser.isSet(readFromStdin); if (m_files.isEmpty() && !m_readFromStdin) parser.showHelp(); }
void V3Error::incErrors() { s_errCount++; if (errorCount() == errorLimit()) { // Not >= as would otherwise recurse v3fatal ("Exiting due to too many errors encountered; --error-limit="<<errorCount()<<endl); } }