From d1f70a5326c3949904f79f8b8b0e5155e2fb5b2b Mon Sep 17 00:00:00 2001 From: Fawzi Mohamed Date: Fri, 15 Jul 2022 14:23:52 +0200 Subject: qqmljslexer: add dump to qDebug Change-Id: I8ce66f5d7a75ae8ba8733ddb464c2198bd18ce27 Reviewed-by: Fabian Kosmale --- src/qml/parser/qqmljslexer.cpp | 64 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) (limited to 'src/qml/parser/qqmljslexer.cpp') diff --git a/src/qml/parser/qqmljslexer.cpp b/src/qml/parser/qqmljslexer.cpp index cc552996ea..4fbc5b106f 100644 --- a/src/qml/parser/qqmljslexer.cpp +++ b/src/qml/parser/qqmljslexer.cpp @@ -17,6 +17,7 @@ #include +QT_BEGIN_NAMESPACE using namespace QQmlJS; static inline int regExpFlagFromChar(const QChar &ch) @@ -437,6 +438,40 @@ QChar Lexer::decodeHexEscapeCharacter(bool *ok) return QChar(); } +namespace QQmlJS { +QDebug operator<<(QDebug dbg, const Lexer &l) +{ + dbg << "{\n" + << " engine:" << qsizetype(l._engine) << ",\n" + << " lexMode:" << int(l._lexMode) << ",\n" + << " code.size:" << qsizetype(l._code.unicode()) << "+" << l._code.size() << ",\n" + << " endPtr: codePtr + " << (l._endPtr - l._codePtr) << ",\n" + << " qmlMode:" << l._qmlMode << ",\n" + << " staticIsKeyword:" << l._staticIsKeyword << ",\n" + << " currentLineNumber:" << l._currentLineNumber << ",\n" + << " currentColumnNumber:" << l._currentColumnNumber << ",\n" + << " currentOffset:" << l._currentOffset << ",\n" + << " tokenLength:" << l._tokenLength << ",\n" + << " tokenLine:" << l._tokenLine << ",\n" + << " tokenColumn:" << l._tokenColumn << ",\n" + << " tokenText:" << l._tokenText << ",\n" + << " skipLinefeed:" << l._skipLinefeed << ",\n" + << " errorMessage:" << l._errorMessage << ",\n" + << " tokenSpell:" << l._tokenSpell << ",\n" + << " rawString:" << l._rawString << ",\n"; + if (l._codePtr) + dbg << " codePtr: code.unicode()+" << (l._codePtr - l._code.unicode()) << ",\n"; + else + dbg << " codePtr: *null*,\n"; + if (l._tokenStartPtr) + dbg << " tokenStartPtr: codePtr " << (l._tokenStartPtr - l._codePtr) << ",\n"; + else + dbg << " tokenStartPtr: *null*,\n"; + dbg << " state:" << l._state << "\n}"; + return dbg; +} +} + static inline bool isIdentifierStart(uint ch) { // fast path for ascii @@ -1766,3 +1801,32 @@ void Lexer::setState(const Lexer::State &state) { _state = state; } + +namespace QQmlJS { +QDebug operator<<(QDebug dbg, const Lexer::State &s) +{ + dbg << "{\n" + << " errorCode:" << int(s.errorCode) << ",\n" + << " currentChar:" << s.currentChar << ",\n" + << " tokenValue:" << s.tokenValue << ",\n" + << " parenthesesState:" << s.parenthesesState << ",\n" + << " parenthesesCount:" << s.parenthesesCount << ",\n" + << " outerTemplateBraceCount:" << s.outerTemplateBraceCount << ",\n" + << " bracesCount:" << s.bracesCount << ",\n" + << " stackToken:" << s.stackToken << ",\n" + << " patternFlags:" << s.patternFlags << ",\n" + << " tokenKind:" << s.tokenKind << ",\n" + << " importState:" << int(s.importState) << ",\n" + << " validTokenText:" << s.validTokenText << ",\n" + << " prohibitAutomaticSemicolon:" << s.prohibitAutomaticSemicolon << ",\n" + << " restrictedKeyword:" << s.restrictedKeyword << ",\n" + << " terminator:" << s.terminator << ",\n" + << " followsClosingBrace:" << s.followsClosingBrace << ",\n" + << " delimited:" << s.delimited << ",\n" + << " handlingDirectives:" << s.handlingDirectives << ",\n" + << " generatorLevel:" << s.generatorLevel << "\n}"; + return dbg; +} +} + +QT_END_NAMESPACE -- cgit v1.2.3