lexgen: Update generated code to Qt 6

Use .size() instead of .length(), and qsizetype instead of int.
Use the deterministic global seed for QHash to reduce variations
between reruns.

Task-number: QTBUG-131842
Change-Id: I95d13840ad1804aba064b1a7e5dada45f4032d1d
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
This commit is contained in:
Volker Hilsheimer 2024-12-03 13:25:34 +01:00
parent e1217cc52b
commit 24d3a2fa48

View File

@ -371,9 +371,9 @@ QString Generator::generate()
Class klass(cfg.className); Class klass(cfg.className);
klass.addMember(Class::PublicMember, "QString input"); klass.addMember(Class::PublicMember, "QString input");
klass.addMember(Class::PublicMember, "int pos"); klass.addMember(Class::PublicMember, "qsizetype pos");
klass.addMember(Class::PublicMember, "int lexemStart"); klass.addMember(Class::PublicMember, "qsizetype lexemStart");
klass.addMember(Class::PublicMember, "int lexemLength"); klass.addMember(Class::PublicMember, "qsizetype lexemLength");
{ {
CodeBlock body; CodeBlock body;
@ -388,9 +388,9 @@ QString Generator::generate()
Function next("QChar", "next()"); Function next("QChar", "next()");
next.setInline(true); next.setInline(true);
if (cfg.caseSensitivity == Qt::CaseSensitive) if (cfg.caseSensitivity == Qt::CaseSensitive)
next.addBody("return (pos < input.length()) ? input.at(pos++) : QChar();"); next.addBody("return (pos < input.size()) ? input.at(pos++) : QChar();");
else else
next.addBody("return (pos < input.length()) ? input.at(pos++).toLower() : QChar();"); next.addBody("return (pos < input.size()) ? input.at(pos++).toLower() : QChar();");
klass.addMember(Class::PublicMember, next); klass.addMember(Class::PublicMember, next);
} }
@ -417,8 +417,8 @@ QString Generator::generate()
CodeBlock body; CodeBlock body;
body << "lexemStart = pos;"; body << "lexemStart = pos;";
body << "lexemLength = 0;"; body << "lexemLength = 0;";
body << "int lastAcceptingPos = -1;"; body << "qsizetype lastAcceptingPos = -1;";
body << "int token = -1;"; body << "qsizetype token = -1;";
body << "QChar ch;"; body << "QChar ch;";
body.addNewLine(); body.addNewLine();