summaryrefslogtreecommitdiffstats
path: root/src/repparser/qregexparser.h
Commit message (Collapse)AuthorAgeFilesLines
* Ensure namespacing of MatchCandidateTim Blechmann2025-08-141-2/+2
| | | | | | | | | MatchCandidate is globally visible and should therefore be namespaced. Task-number: QTBUG-138543 Pick-to: 6.10 Change-Id: I311fbae84be54b129073980c5eb637e620c160e1 Reviewed-by: Brett Stottlemyer <brett.stottlemyer@gmail.com>
* Mark QtRemoteObjects as security criticalØystein Heskestad2025-07-041-0/+1
| | | | | | | | | | | | | | | | | | | | | | The QtRemoteObjects serialization is built on top of QDataStream, but QDataStream is not secure. Mark all files parsing data as security critical. The security is dependent on the backend used. The local and QNX backends communicate only locally but are insecure on a compromised host. The TCP backend is by default insecure, but it supports TLS, and can be secure if that is used. The two files in the repparser directory are used for parsing, but only at build time, and are therefore kept at security significant. The remaining files are marked as security signifcant. QUIP: 23 Task-number: QTBUG-135570 Pick-to: 6.10 6.9 6.8 Change-Id: I11176c036d95f8c706bd05e1cab1ba499003f683 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Port from qAsConst() to std::as_const()Marc Mutz2022-10-071-2/+2
| | | | | | | | | | | | | | We've been requiring C++17 since Qt 6.0, and our qAsConst use finally starts to bother us (QTBUG-99313), so time to port away from it now. Since qAsConst has exactly the same semantics as std::as_const (down to rvalue treatment, constexpr'ness and noexcept'ness), there's really nothing more to it than a global search-and-replace. Task-number: QTBUG-99313 Change-Id: Ifc205a53ed6809f98d6cd552de901ea7e90716f5 Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
* Port from container::count() and length() to size()Marc Mutz2022-10-061-1/+1
| | | | | | | | | | | | | | | | | | | | | This is a semantic patch using ClangTidyTransformator as in qtbase/df9d882d41b741fef7c5beeddb0abe9d904443d8: auto QtContainerClass = anyOf( expr(hasType(cxxRecordDecl(isSameOrDerivedFrom(hasAnyName(classes))))).bind(o), expr(hasType(namedDecl(hasAnyName(<classes>)))).bind(o)); makeRule(cxxMemberCallExpr(on(QtContainerClass), callee(cxxMethodDecl(hasAnyName({"count", "length"), parameterCountIs(0))))), changeTo(cat(access(o, cat("size"), "()"))), cat("use 'size()' instead of 'count()/length()'")) a.k.a qt-port-to-std-compatible-api with config Scope: 'Container', with the extended set of container classes recognized. Change-Id: Id816b39977e17712fd078900037efc45f66a0175 Reviewed-by: Sona Kurazyan <kurazyan.sona@gmail.com> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Port away from deprecated QRegularExpression::match() callIvan Solovev2022-08-301-2/+2
| | | | | | | Task-number: QTBUG-105102 Change-Id: Id96498dfd134614946d9668ff36748e20fbc20a9 Reviewed-by: Juha Vuolle <juha.vuolle@insta.fi> Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
* Use SPDX license identifiersLucie Gérard2022-06-141-40/+3
| | | | | | | | | | | Replace the current license disclaimer in files by a SPDX-License-Identifier. License files are organized under LICENSES directory. Pick-to: 6.4 Task-number: QTBUG-67283 Change-Id: I315d7ce1d6c6c3497afdfe8b61a113fdc181c935 Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* Use QList instead of QVectorJarek Kobus2021-02-161-1/+1
| | | | | | | | | Task-number: QTBUG-84469 Task-number: QTBUG-90907 Change-Id: Ifc6f05fb5e17e32ec04b383770080e812c854510 Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io> Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io> Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
* Qt6: Port QtRemoteObjects from QStringRef to QStringViewKarsten Heimrich2020-06-151-6/+7
| | | | | | Task-number: QTBUG-84319 Change-Id: I550476383f725ddfa8fbec61322cc190b34b3f4c Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
* Update dependenciesBrett Stottlemyer2020-06-011-129/+37
| | | | | | | | | | | | | | | | This required removal of QRegExp and full conversion to QRegularExpression. In 5.x, we needed QRegExp, as the "bootstrap" minimal configuration for building host tools for cross-compilation did not include the QRegularExpression components. One of the tests was also converted from using the Qt::DateFormat enum to using the Qt::DayOfWeek enum, as several of the used DateFormat enums were removed in Qt6. Fixes: QTBUG-72592 Task-number: QTBUG-84590 Change-Id: I3414e6c106407819790de9cd179914ed45ece07e Reviewed-by: Michael Brasser <michael.brasser@live.com>
* Annual QStringLiteral sweepMarc Mutz2019-08-051-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | It makes little sense to use QStringLiteral in the following situations: - for comparison to a QString, because operator==, startsWith(), indexOf() etc are overloaded for QLatin1String. - for strings which are immediately appended to, or which are appended or prepended to other strings. because no dynamic memory allocation is saved by doing so. But if the only advantage of QStringLiteral does not apply, all its disadvantages dominate, to wit: injection of calls to the QString dtor, non-sharability of data between C strings and QStringLiterals and among QStringLiterals, and doubled storage requirements. Fix by replacing QStringLiteral with QLatin1String, or char16_t literals, whichever is more fitting. Also use new QLatin1String::arg() more. Change-Id: I55d05783889f521001a1cb8dedd276d0a183882f Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Eradicate some simple Q_FOREACH loopsMarc Mutz2019-07-041-5/+7
| | | | | | | | | | | | | | | | | | | | | All these are relatively easily verified to be safe: They clearly don't modify the container they iterate over, are already const or trivially marked as such. In QRegistrySource::removeServer(), merge with an adjacent loop. In tst_modelview.cpp, replaced a loop over QHash::keys() + QHash::op[] with an STL-style loop and it.key()/it.value(). In tst_signature.cpp, replaced a QStringList with a C array of QLatin1Strings, saving a qAsConst call. Add some reserve() as a drive-by. Change-Id: Ibf09371ca8b58437834734c3bab997527219c823 Reviewed-by: Michael Brasser <michael.brasser@live.com> Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Eradicate Java-style iterators and mark the module free of themMarc Mutz2019-07-031-4/+3
| | | | | | | | | Java-style iterators are scheduled for deprecation, or at the very least banned from use in Qt code. Change-Id: I7a6e689e66ee4454658b9b52e7d444b7560a06fb Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* Fix includes in public headersFriedemann Kleint2018-08-271-9/+9
| | | | | | | | | Use the convention <QtModule/header.h> as per coding style, fixing the syncqt warning: WARNING: qremoteobjectsettingsstore.h includes qremoteobjectnode.h when it should include QtRemoteObjects/qremoteobjectnode.h Change-Id: Ib4657a9b81ca16e42fbd3f0e7810e62ca9e00426 Reviewed-by: Michael Brasser <michael.brasser@live.com>
* Correct QtRO license headers and added missing license filesv5.9.0-beta4Jani Heikkinen2017-05-021-14/+20
| | | | | | | | | | | | | Unify licensing as it is in other submodules - Src is licensed under Commercial, LGPLv3, GPLv2 and GPLv3 licenses - Examples are licensed under Commercial and BSD licenses - Tools and tests are licensed under commercial and GPLv3 license with some exceptions Task-number: QTBUG-58921 Change-Id: I4494bf8b705568b243340c98316bedd706145db5 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
* Fix MSVC conversion warningsKevin Funk2017-02-221-3/+3
| | | | | | | | | Example: qregexparser.h(368): warning C4267: 'argument': conversion from 'size_t' to 'int', possible loss of data Change-Id: I025739d9dfa2d3ac4c254b59583575c3dae2f30e Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
* Rename QRepRegexParserBrett Stottlemyer2017-01-171-0/+480
| | | | | | | | | Rename to QRegexParser, it isn't specific to .rep files, only the parser.g file is specific to .rep files. Change-Id: Ie74c8c996a38ea60cb2e1328e45178eb0582cdc4 Reviewed-by: Continuous Integration (KDAB) <build@kdab.com> Reviewed-by: Michael Brasser <michael.brasser@live.com>
* Allow apps to use the new repparserBogDan Vatra2015-10-091-493/+0
| | | | | | | | | - rename qregexparser.h -> qrepregexparser.h - install parser.g - add a small .prf file to allow easily usage of reparser Change-Id: Iefbe3581f4da56c290e9ba05a8923b6a0e7917bb Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
* QLALR version of repcBrett Stottlemyer2015-10-071-0/+493
This change moves the repc parser from hand-coded to a QLALR parser. It uses a special* lexer/parser header file that combines regexes** with QLALR to make simplified grammars. That is, regular expressions are the building blocks of the grammar, not more basic tokens. It doesn't need lex or a compatible lexer generator. It should support full conversion to a complete (non-regex based) language if necessary, but incrementally. The goal is to make repc easier to extend by moving to a grammar. *qregexparser.h **As of Qt 5.5, bootstrap (which is required for repc, since it is a host tool) includes QRegExp, but not QRegularExpressions. So this version of the parser uses QRegularExpressions in non-bootstrap mode, and includes a bunch of #defines to work with QRegExp in bootstrap mode. THIS IS FRAGILE. The regex syntax is different for each library. Ideally QRE will move to bootstrap, and these hacks can be removed. Change-Id: I86f4e764fd22702771d6b00358a0bf2da72658c0 Reviewed-by: Continuous Integration (KDAB) <build@kdab.com> Reviewed-by: BogDan Vatra <bogdan@kdab.com>