Пример #1
0
/**
 * Attempts to parse an input /equip line.
 * Returns false on failure, true on success
 */
bool EquipReaderTxt::parsePiece(const QString &lineBuffer)
{
    //parse using regex :D
    QRegExp regex(
        "input /equip (.+) \"(.+)\"",
        Qt::CaseInsensitive
    );

    QString extraData; //store unparsed data in here
    int i = regex.indexIn(lineBuffer);
    //if our line is an equipment line
    if (i >= 0) {
        m_equip->set(regex.cap(1), regex.cap(2));
        return true;
    }

    //check for version line or other stuff we don't want and eat it up.
    QRegExp versionLine(
        "^//(Equipmant Script File|Get your copy|input)",
        Qt::CaseInsensitive
    );
    if (versionLine.indexIn(lineBuffer) >= 0)
        return true;

    //parse failure, return false
    return false;
}
Пример #2
0
void CMakeTool::fetchVersionFromVersionOutput() const
{
    Utils::SynchronousProcessResponse response = run({ "--version" });
    if (response.result != Utils::SynchronousProcessResponse::Finished)
        return;

    QRegularExpression versionLine("^cmake version ((\\d+).(\\d+).(\\d+).*)$");
    const QString responseText = response.stdOut();
    for (const QStringRef &line : responseText.splitRef(QLatin1Char('\n'))) {
        QRegularExpressionMatch match = versionLine.match(line);
        if (!match.hasMatch())
            continue;

        m_version.major = match.captured(2).toInt();
        m_version.minor = match.captured(3).toInt();
        m_version.patch = match.captured(4).toInt();
        m_version.fullVersion = match.captured(1).toUtf8();
        break;
    }
}