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);
klass.addMember(Class::PublicMember, "QString input");
klass.addMember(Class::PublicMember, "int pos");
klass.addMember(Class::PublicMember, "int lexemStart");
klass.addMember(Class::PublicMember, "int lexemLength");
klass.addMember(Class::PublicMember, "qsizetype pos");
klass.addMember(Class::PublicMember, "qsizetype lexemStart");
klass.addMember(Class::PublicMember, "qsizetype lexemLength");
{
CodeBlock body;
@ -388,9 +388,9 @@ QString Generator::generate()
Function next("QChar", "next()");
next.setInline(true);
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
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);
}
@ -417,8 +417,8 @@ QString Generator::generate()
CodeBlock body;
body << "lexemStart = pos;";
body << "lexemLength = 0;";
body << "int lastAcceptingPos = -1;";
body << "int token = -1;";
body << "qsizetype lastAcceptingPos = -1;";
body << "qsizetype token = -1;";
body << "QChar ch;";
body.addNewLine();