summaryrefslogtreecommitdiffstats
path: root/src/tools/qlalr/cppgenerator.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Add REUSE ignore commentLucie Gérard2024-05-081-1/+4
| | | | | | | | For those files, reuse fails to process the copyright and licensing information. The information is written to .reuse/dep5 file and reuse is told to ignore what is in the file. Task-number: QTBUG-124453 Change-Id: If593c713026d9d349055cb6e8e73500966a05d9b Reviewed-by: Joerg Bornemann <[email protected]>
* Tools: handle file opening failureGiuseppe D'Angelo2024-04-141-4/+24
| | | | | | | | | Most of the cases, a file handle (stdin/out) is opened without checking for error. That operation may still fail, so check for it. Change-Id: I30c3e7b40858acd8b1662622129bd6557722dccd Reviewed-by: Ahmad Samir <[email protected]> Reviewed-by: Thiago Macieira <[email protected]>
* qlalr: add option to error out on warningMårten Nordheim2023-03-311-2/+18
| | | | | | | | | | | | | By erroring out we can ensure that new warnings are not accidentally introduced and merged. As a drive-by: fix indentation of the --qt option. "--dot" needs three tabs, so "--qt" definitely needs it too. Fixes: QTBUG-108119 Change-Id: I56107c0744957293338080cf37350f1e1c743093 Reviewed-by: Edward Welbourne <[email protected]> Reviewed-by: Kai Köhne <[email protected]>
* Centralize copyright information for QtKai Köhne2023-03-201-1/+2
| | | | | | | | | Maintain one central place - .cmake.conf - for information about Qt's copyright. Pick-to: 6.2 6.5 Change-Id: Ibcbce4313eba9660d459061b0ad00307e267b8f7 Reviewed-by: Alexandru Croitor <[email protected]>
* Port from container::count() and length() to size() - V5Marc Mutz2022-11-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a semantic patch using ClangTidyTransformator as in qtbase/df9d882d41b741fef7c5beeddb0abe9d904443d8, but extended to handle typedefs and accesses through pointers, too: const std::string o = "object"; auto hasTypeIgnoringPointer = [](auto type) { return anyOf(hasType(type), hasType(pointsTo(type))); }; auto derivedFromAnyOfClasses = [&](ArrayRef<StringRef> classes) { auto exprOfDeclaredType = [&](auto decl) { return expr(hasTypeIgnoringPointer(hasUnqualifiedDesugaredType(recordType(hasDeclaration(decl))))).bind(o); }; return exprOfDeclaredType(cxxRecordDecl(isSameOrDerivedFrom(hasAnyName(classes)))); }; auto renameMethod = [&] (ArrayRef<StringRef> classes, StringRef from, StringRef to) { return makeRule(cxxMemberCallExpr(on(derivedFromAnyOfClasses(classes)), callee(cxxMethodDecl(hasName(from), parameterCountIs(0)))), changeTo(cat(access(o, cat(to)), "()")), cat("use '", to, "' instead of '", from, "'")); }; renameMethod(<classes>, "count", "size"); renameMethod(<classes>, "length", "size"); except that the on() matcher has been replaced by one that doesn't ignoreParens(). a.k.a qt-port-to-std-compatible-api V5 with config Scope: 'Container'. Added two NOLINTNEXTLINEs in tst_qbitarray and tst_qcontiguouscache, to avoid porting calls that explicitly test count(). Change-Id: Icfb8808c2ff4a30187e9935a51cad26987451c22 Reviewed-by: Ivan Solovev <[email protected]> Reviewed-by: Qt CI Bot <[email protected]>
* Port from qAsConst() to std::as_const()Marc Mutz2022-10-111-1/+1
| | | | | | | | | | | | | | | | 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, with manual unstaging of the actual definition and documentation in dist/, src/corelib/doc/ and src/corelib/global/. Task-number: QTBUG-99313 Change-Id: I4c7114444a325ad4e62d0fcbfd347d2bbfb21541 Reviewed-by: Ivan Solovev <[email protected]>
* Use SPDX license identifiersLucie Gérard2022-05-161-54/+4
| | | | | | | | | | | | | Replace the current license disclaimer in files by a SPDX-License-Identifier. Files that have to be modified by hand are modified. License files are organized under LICENSES directory. Task-number: QTBUG-67283 Change-Id: Id880c92784c40f3bbde861c0d93f58151c18b9f1 Reviewed-by: Qt CI Bot <[email protected]> Reviewed-by: Lars Knoll <[email protected]> Reviewed-by: Jörg Bornemann <[email protected]>
* Tools: use _L1 for for creating Latin-1 string literalsSona Kurazyan2022-05-031-12/+14
| | | | | | | | | As a drive-by, fix qsizetype -> int narrowing conversion warnings for the touched lines. Task-number: QTBUG-98434 Change-Id: I6d4712a71b5ebf3f379f1f98ea476557bce963ef Reviewed-by: Marc Mutz <[email protected]>
* Tools: stop using QLatin1Char constructor for creating char literalsSona Kurazyan2022-05-021-2/+2
| | | | | | | | | | | Required for porting away from QLatin1Char/QLatin1String in scope of QTBUG-98434. As a drive-by, fix qsizetype -> int narrowing conversion warnings for the touched lines. Change-Id: Ib9e01ede4e0d7869fc95414d36f37df4a30b16b4 Reviewed-by: Marc Mutz <[email protected]>
* Another round of 0->nullptr cleanupAllan Sandfeld Jensen2020-07-311-2/+2
| | | | | Change-Id: Ic8db7dc252f8fea46eb5a4f334726d6c7f4645a6 Reviewed-by: Sona Kurazyan <[email protected]>
* Use QList instead of QVector in other toolsJarek Kobus2020-06-251-1/+1
| | | | | | Task-number: QTBUG-84469 Change-Id: I90d0e2e723bb4d205d7bf333b21cdf583fdf4ea0 Reviewed-by: Lars Knoll <[email protected]>
* qlalr: replace QLinkedList with std::listMarc Mutz2019-07-021-8/+9
| | | | | | | | | | | | | | | | | | | This is in preparation of deprecating QLinkedList. Most is straight-forward, except where operator+ was used on linked-list iterators. In one case, replaced this with std::next, in the other, with prefix increments, since the advancement was always equal to the loop control variable. Since advancing a linked-list iterator is a linear operation, this removes a source of quadratic complexity. Another obstacle was the overloaded op< set, which was in the Qt namespace while the iterator is from std and the payload, as before, was global. This breaks ADL, so move these operators to namespace std. This violates the standard, but the functions are tagged with our distinct types, so it shouldn't cause any trouble. Change-Id: Ifec0a927bfdabb002838cdf86fb8d23b32a38ff7 Reviewed-by: Giuseppe D'Angelo <[email protected]>
* qlalr: replace a QMap-wrapping OrderedSet with std::setMarc Mutz2019-05-141-2/+2
| | | | | | | | | | | Why roll your own if you can use the original. The clone was even designed to be API-compatible with std::set, so porting is trivial, except for the unholy int/size_t mismatch, which requires a few casts. Change-Id: Ieb99cbc019ef387c6901d7518d1e79585169b638 Reviewed-by: Giuseppe D'Angelo <[email protected]>
* Prefix textstream operators with Qt::Lars Knoll2019-05-021-94/+94
| | | | | | | As the non prefixed variants are deprecated Change-Id: I2ba09d71b9cea5203b54297a3f2332e6d44fedcf Reviewed-by: Allan Sandfeld Jensen <[email protected]>
* Pass non-trivial types by const-ref in range-loop [-Wclazy-range-loop]Sergio Martins2018-12-051-1/+1
| | | | | | | | | | | | | corelib/serialization/qcbormap.h:176:14: warning: Missing reference in range-for with non trivial type (QPair<QCborValue, QCborValue>) corelib/serialization/qjsoncbor.cpp:820:10: warning: Missing reference in range-for with non trivial type (QJsonValue) gui/kernel/qguiapplication.cpp:1171:10: warning: Missing reference in range-for with non trivial type (QString) printsupport/dialogs/qprintdialog_unix.cpp:741:10: warning: Missing reference in range-for with non trivial type (QString) printsupport/kernel/qprinter.cpp:1851:10: warning: Missing reference in range-for with non trivial type (QVariant) tools/qlalr/cppgenerator.cpp:463:8: warning: Missing reference in range-for with non trivial type (Name) Change-Id: I327b0f116e329e55952ed5740a5f5af4b2918392 Reviewed-by: Friedemann Kleint <[email protected]> Reviewed-by: Thiago Macieira <[email protected]>
* qlalr: Fix startup crash in static buildsFriedemann Kleint2018-05-081-6/+6
| | | | | | | | | | | Replace the global variables qout, qerr by a functions to delay the initialization. Task-number: QTBUG-68166 Change-Id: Ib023da1bccc7eabc6e633ccb8945e5f209c5765e Reviewed-by: Kevin Funk <[email protected]> Reviewed-by: Brett Stottlemyer <[email protected]> Reviewed-by: Oswald Buddenhagen <[email protected]>
* qlalr: Fix and re-run qlalr on its own sourcesKevin Funk2017-03-081-155/+88
| | | | | | | | | | | So the generated files are up-to-date again. Generated with: qlalr --qt --no-lines --no-debug lalr.g Change-Id: I3c4adb0083be7e66fed3db92c079493b574295aa Reviewed-by: Edward Welbourne <[email protected]> Reviewed-by: Oswald Buddenhagen <[email protected]>
* qlalr: eradicate all Q_FOREACH loopsMarc Mutz2016-01-261-5/+5
| | | | | | | | | | | | | ... by replacing them with C++11 range-for, or, for loops over .values(), with explicit iterator loops over the result of equal_range(). Some fixes here and there to get to mark containers const for iteration, without having to resort to qAsConst(). Didn't work everywhere. Change-Id: Ibc0e71d3b208d118f06e16741af47261ef4b9e15 Reviewed-by: Lars Knoll <[email protected]>
* Updated license headersJani Heikkinen2016-01-211-31/+32
| | | | | | | | | | | | | From Qt 5.7 -> tools & applications are lisenced under GPL v3 with some exceptions, see http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/ Updated license headers to use new GPL-EXCEPT header instead of LGPL21 one (in those files which will be under GPL 3 with exceptions) Change-Id: I42a473ddc97101492a60b9287d90979d9eb35ae1 Reviewed-by: Thiago Macieira <[email protected]> Reviewed-by: Lars Knoll <[email protected]>
* Use const-ref in foreach if T is big or non-trivialSérgio Martins2015-07-041-2/+2
| | | | | | | | Criteria: Linux x86_64, sizeof(T) > 8 Change-Id: I78c2b776ff219fa1ff6632fde17ae25fae66c54e Reviewed-by: Olivier Goffart (Woboq GmbH) <[email protected]> Reviewed-by: Marc Mutz <[email protected]>
* Update copyright headersJani Heikkinen2015-02-111-14/+14
| | | | | | | | | | | | | | | | | | Qt copyrights are now in The Qt Company, so we could update the source code headers accordingly. In the same go we should also fix the links to point to qt.io. Outdated header.LGPL removed (use header.LGPL21 instead) Old header.LGPL3 renamed to header.LGPL3-COMM to match actual licensing combination. New header.LGPL-COMM taken in the use file which were using old header.LGPL3 (src/plugins/platforms/android/extract.cpp) Added new header.LGPL3 containing Commercial + LGPLv3 + GPLv2 license combination Change-Id: I6f49b819a8a20cc4f88b794a8f6726d975e8ffbe Reviewed-by: Matti Paaso <[email protected]>
* Bump copyright year to 2015Kai Koehne2015-01-151-2/+2
| | | | | | | | Bump copyright year in tool output and user visible strings to 2015. Change-Id: I9b29907fe3f555e78005cb296a49d92f601fb7ec Reviewed-by: Lars Knoll <[email protected]> Reviewed-by: Martin Smith <[email protected]>
* Update license headers and add new license filesMatti Paaso2014-09-241-36/+20
| | | | | | | | | - Renamed LICENSE.LGPL to LICENSE.LGPLv21 - Added LICENSE.LGPLv3 - Removed LICENSE.GPL Change-Id: Iec3406e3eb3f133be549092015cefe33d259a3f2 Reviewed-by: Iikka Eklund <[email protected]>
* Update copyright year in tools outputKai Koehne2014-03-311-2/+2
| | | | | | Change-Id: I9ee9604303b3cb29f89a4252df5af35e729f6249 Reviewed-by: Oswald Buddenhagen <[email protected]> Reviewed-by: Iikka Eklund <[email protected]>
* move and build qlalrOswald Buddenhagen2014-01-201-0/+750
Change-Id: I852e1a33fc056a52f6dbba8aaf7dd75274bbe815 Reviewed-by: Thiago Macieira <[email protected]>