summaryrefslogtreecommitdiffstats
path: root/src/tools/qlalr/lalr.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Disentangle QIODevice dependenciesLars Knoll2020-08-151-2/+2
| | | | | | | | | | | | | | | | | Move the QIODevice::OpenMode enum into a base class, so that we can remove the full QIODevice (and thus QObject) dependency from qdatastream.h and qtextstream.h. This is required so that we can include QDataStream in qmetatype.h without getting circular dependencies. As a nice side effect, QDataStream and QTextStream can now inherit QIODeviceBase and provide the OpenMode enum directly in their class scope. Change-Id: Ifa68b7b1d8d95687ed032f6c9206f92e63bfacdf Reviewed-by: Paul Wicking <paul.wicking@qt.io> Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
* Remove use of std::not1 completelyThiago Macieira2020-05-051-11/+5
| | | | | | | | | | | libc++ that comes with XCode does not have the feature macros, resulting in warnings printed. Just invert the condition in the functor itself. lalr.cpp:316:84: warning: 'not1<Nullable>' is deprecated [-Wdeprecated-declarations] Pick-To: 5.15 Change-Id: I99ab0f318b1c43b89888fffd160bf8d79bc4b47e Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Merge remote-tracking branch 'origin/5.13' into devLiang Qi2019-08-131-2/+8
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: mkspecs/win32-clang-msvc/qmake.conf src/corelib/tools/qlist.h src/gui/painting/qcompositionfunctions.cpp src/gui/painting/qtriangulator_p.h src/gui/text/qfontengine_p.h src/network/kernel/qhostinfo_p.h src/platformsupport/fontdatabases/freetype/qfontengine_ft.cpp Done-With: Allan Sandfeld Jensen <allan.jensen@qt.io> Change-Id: Ib8a0308cf77224c4fbdcf56778fdac4a43e37798
| * qlalr: fix compilation with C++20Marc Mutz2019-08-011-2/+8
| | | | | | | | | | | | | | | | | | std::not1 is deprecated in C++17, removed in C++20. Use its replacement, std::not_fn. Change-Id: I37d4929c81c2a5befeb44f954ae77b23960d2ff0 Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
* | qlalr: replace QLinkedList with std::listMarc Mutz2019-07-021-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <giuseppe.dangelo@kdab.com>
* | qlalr: replace a QMap-wrapping OrderedSet with std::setMarc Mutz2019-05-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | 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 <giuseppe.dangelo@kdab.com>
* | Prefix textstream operators with Qt::Lars Knoll2019-05-021-10/+10
|/ | | | | | | As the non prefixed variants are deprecated Change-Id: I2ba09d71b9cea5203b54297a3f2332e6d44fedcf Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* qlalr: fix build in C++17Thiago Macieira2018-05-151-1/+2
| | | | | | | | std::unary_function and std::binary_function are gone. Remove their uses. Change-Id: I5d0ee9389a794d80983efffd152c96f0f2149b40 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* qlalr: Fix startup crash in static buildsFriedemann Kleint2018-05-081-22/+31
| | | | | | | | | | | Replace the global variables qout, qerr by a functions to delay the initialization. Task-number: QTBUG-68166 Change-Id: Ib023da1bccc7eabc6e633ccb8945e5f209c5765e Reviewed-by: Kevin Funk <kevin.funk@kdab.com> Reviewed-by: Brett Stottlemyer <bstottle@ford.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Enable building of qlalr with QT_NO_CAST_FROM/TO_ASCIILars Knoll2016-09-251-1/+1
| | | | | Change-Id: I1b26c4b3ca84e0bb8001ca24ef46bd24926a0f82 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* qlalr: eradicate all Q_FOREACH loopsMarc Mutz2016-01-261-2/+6
| | | | | | | | | | | | | ... 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 <lars.knoll@theqtcompany.com>
* qlalr: remove uses of inefficient QListsMarc Mutz2016-01-261-2/+6
| | | | | | | | | | | | | | | | For QList<QLinkedList<T>::iterator>, mark the iterator Q_PRIMITIVE_TYPE. This should be done in Qt itself, but would be binary incompatible. For two other types that are used as values in QMultiMap, replaced foreach (x, map.values(y)) with auto range = map.equal_range(y); for (auto it = range.first; it != ramge.second; ++it) x = *it; which doesn't require a temporary QList. Change-Id: I9ddd15dd9b1d5bb3000833d14ed911451a272328 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* Updated license headersJani Heikkinen2016-01-211-17/+12
| | | | | | | | | | | | | 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 <thiago.macieira@intel.com> Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.5' into devFrederik Gladhorn2015-08-061-4/+4
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: doc/global/qt-cpp-defines.qdocconf src/3rdparty/forkfd/forkfd.c src/corelib/codecs/qtextcodec.cpp src/corelib/kernel/qmetatype.cpp src/corelib/tools/qset.qdoc src/gui/accessible/qaccessible.cpp src/gui/image/qpixmapcache.cpp src/opengl/qgl.cpp src/tools/qdoc/generator.cpp src/widgets/kernel/qwidget.cpp tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp Change-Id: I4fbe1fa756a54c6843aa75f4ef70a1069ba7b085
| * Fix build with clang 3.7Bernhard Rosenkränzer2015-07-201-4/+4
| | | | | | | | | | | | | | | | | | | | | | _Nullable is a language extension in clang 3.7 (indicating whether or not a pointer can be null). http://clang.llvm.org/docs/AttributeReference.html#nullable Using it as a class name breaks building with this compiler. Change-Id: I0c838dac872ca2c00bf57c95df17d24edb48007b Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Use const-ref in foreach if T is big or non-trivialSĂ©rgio Martins2015-07-041-4/+4
|/ | | | | | | | Criteria: Linux x86_64, sizeof(T) > 8 Change-Id: I78c2b776ff219fa1ff6632fde17ae25fae66c54e Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Update copyright headersJani Heikkinen2015-02-111-7/+7
| | | | | | | | | | | | | | | | | | 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 <matti.paaso@theqtcompany.com>
* Update license headers and add new license filesMatti Paaso2014-09-241-19/+11
| | | | | | | | | - Renamed LICENSE.LGPL to LICENSE.LGPLv21 - Added LICENSE.LGPLv3 - Removed LICENSE.GPL Change-Id: Iec3406e3eb3f133be549092015cefe33d259a3f2 Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
* move and build qlalrOswald Buddenhagen2014-01-201-0/+781
Change-Id: I852e1a33fc056a52f6dbba8aaf7dd75274bbe815 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>