Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
QQmlJS::Lexer Class Reference

#include <qqmljslexer_p.h>

Inheritance diagram for QQmlJS::Lexer:
Collaboration diagram for QQmlJS::Lexer:

Classes

struct  State

Public Types

enum  Error {
  NoError , IllegalCharacter , IllegalNumber , UnclosedStringLiteral ,
  IllegalEscapeSequence , IllegalUnicodeEscapeSequence , UnclosedComment , IllegalExponentIndicator ,
  IllegalIdentifier , IllegalHexadecimalEscapeSequence
}
enum  RegExpBodyPrefix { NoPrefix , EqualPrefix }
enum  RegExpFlag {
  RegExp_Global = 0x01 , RegExp_IgnoreCase = 0x02 , RegExp_Multiline = 0x04 , RegExp_Unicode = 0x08 ,
  RegExp_Sticky = 0x10
}
enum  ParseModeFlags { QmlMode = 0x1 , YieldIsKeyword = 0x2 , StaticIsKeyword = 0x4 }
enum class  ImportState { SawImport , NoQmlImport }
enum class  LexMode { WholeCode , LineByLine }
enum class  CodeContinuation { Reset , Continue }
enum  ParenthesesState { IgnoreParentheses , CountParentheses , BalancedParentheses }
enum class  CommentState { NoComment , HadComment , InMultilineComment }

Public Member Functions

 Lexer (Engine *engine, LexMode lexMode=LexMode::WholeCode)
bool qmlMode () const
bool yieldIsKeyWord () const
void setStaticIsKeyword (bool b)
QString code () const
void setCode (const QString &code, int lineno, bool qmlMode=true, CodeContinuation codeContinuation=CodeContinuation::Reset)
int lex ()
bool scanRegExp (RegExpBodyPrefix prefix=NoPrefix)
bool scanDirectives (Directives *directives, DiagnosticMessage *error)
int regExpFlags () const
QString regExpPattern () const
int tokenKind () const
int tokenOffset () const
int tokenLength () const
int tokenStartLine () const
int tokenStartColumn () const
QStringView tokenSpell () const
QStringView rawString () const
double tokenValue () const
QString tokenText () const
Error errorCode () const
QString errorMessage () const
std::optional< DiagnosticMessageillegalFileLengthError () const
bool canInsertAutomaticSemicolon (int token) const
void enterGeneratorBody ()
void leaveGeneratorBody ()
const Statestate () const
void setState (const State &state)

Static Protected Member Functions

static int classify (QStringView s, int parseModeFlags)

Friends

QML_PARSER_EXPORT QDebug operator<< (QDebug dbg, const Lexer &l)

Detailed Description

Definition at line 35 of file qqmljslexer_p.h.

Member Enumeration Documentation

◆ CodeContinuation

Enumerator
Reset 
Continue 

Definition at line 77 of file qqmljslexer_p.h.

◆ CommentState

enum class QQmlJS::Lexer::CommentState
strong
Enumerator
NoComment 
HadComment 
InMultilineComment 

Definition at line 123 of file qqmljslexer_p.h.

◆ Error

Enumerator
NoError 
IllegalCharacter 
IllegalNumber 
UnclosedStringLiteral 
IllegalEscapeSequence 
IllegalUnicodeEscapeSequence 
UnclosedComment 
IllegalExponentIndicator 
IllegalIdentifier 
IllegalHexadecimalEscapeSequence 

Definition at line 38 of file qqmljslexer_p.h.

◆ ImportState

enum class QQmlJS::Lexer::ImportState
strong
Enumerator
SawImport 
NoQmlImport 

Definition at line 70 of file qqmljslexer_p.h.

◆ LexMode

enum class QQmlJS::Lexer::LexMode
strong
Enumerator
WholeCode 
LineByLine 

Definition at line 75 of file qqmljslexer_p.h.

◆ ParenthesesState

Enumerator
IgnoreParentheses 
CountParentheses 
BalancedParentheses 

Definition at line 117 of file qqmljslexer_p.h.

◆ ParseModeFlags

Enumerator
QmlMode 
YieldIsKeyword 
StaticIsKeyword 

Definition at line 64 of file qqmljslexer_p.h.

◆ RegExpBodyPrefix

Enumerator
NoPrefix 
EqualPrefix 

Definition at line 51 of file qqmljslexer_p.h.

◆ RegExpFlag

Enumerator
RegExp_Global 
RegExp_IgnoreCase 
RegExp_Multiline 
RegExp_Unicode 
RegExp_Sticky 

Definition at line 56 of file qqmljslexer_p.h.

Constructor & Destructor Documentation

◆ Lexer()

Lexer::Lexer ( Engine * engine,
LexMode lexMode = LexMode::WholeCode )

Definition at line 52 of file qqmljslexer.cpp.

Member Function Documentation

◆ canInsertAutomaticSemicolon()

bool Lexer::canInsertAutomaticSemicolon ( int token) const

Definition at line 1601 of file qqmljslexer.cpp.

◆ classify()

int QQmlJS::Lexer::classify ( QStringView s,
int parseModeFlags )
staticprotected

Definition at line 816 of file qqmljskeywords_p.h.

◆ code()

QString Lexer::code ( ) const

Definition at line 64 of file qqmljslexer.cpp.

◆ enterGeneratorBody()

void QQmlJS::Lexer::enterGeneratorBody ( )
inline

Definition at line 125 of file qqmljslexer_p.h.

◆ errorCode()

Lexer::Error Lexer::errorCode ( ) const

Definition at line 1568 of file qqmljslexer.cpp.

◆ errorMessage()

QString Lexer::errorMessage ( ) const

Definition at line 1573 of file qqmljslexer.cpp.

◆ illegalFileLengthError()

std::optional< DiagnosticMessage > Lexer::illegalFileLengthError ( ) const

Definition at line 69 of file qqmljslexer.cpp.

◆ leaveGeneratorBody()

void QQmlJS::Lexer::leaveGeneratorBody ( )
inline

Definition at line 126 of file qqmljslexer_p.h.

◆ lex()

int Lexer::lex ( )

Definition at line 216 of file qqmljslexer.cpp.

◆ qmlMode()

bool Lexer::qmlMode ( ) const

Definition at line 59 of file qqmljslexer.cpp.

◆ rawString()

QStringView QQmlJS::Lexer::rawString ( ) const
inline

Definition at line 106 of file qqmljslexer_p.h.

◆ regExpFlags()

int QQmlJS::Lexer::regExpFlags ( ) const
inline

Definition at line 95 of file qqmljslexer_p.h.

◆ regExpPattern()

QString QQmlJS::Lexer::regExpPattern ( ) const
inline

Definition at line 96 of file qqmljslexer_p.h.

◆ scanDirectives()

bool Lexer::scanDirectives ( Directives * directives,
DiagnosticMessage * error )

Definition at line 1672 of file qqmljslexer.cpp.

◆ scanRegExp()

bool Lexer::scanRegExp ( RegExpBodyPrefix prefix = NoPrefix)

Definition at line 1403 of file qqmljslexer.cpp.

◆ setCode()

void Lexer::setCode ( const QString & code,
int lineno,
bool qmlMode = true,
Lexer::CodeContinuation codeContinuation = CodeContinuation::Reset )

Definition at line 87 of file qqmljslexer.cpp.

◆ setState()

void Lexer::setState ( const State & state)

Definition at line 1831 of file qqmljslexer.cpp.

◆ setStaticIsKeyword()

void QQmlJS::Lexer::setStaticIsKeyword ( bool b)
inline

Definition at line 84 of file qqmljslexer_p.h.

◆ state()

const Lexer::State & Lexer::state ( ) const

Definition at line 1827 of file qqmljslexer.cpp.

◆ tokenKind()

int QQmlJS::Lexer::tokenKind ( ) const
inline

Definition at line 98 of file qqmljslexer_p.h.

◆ tokenLength()

int QQmlJS::Lexer::tokenLength ( ) const
inline

Definition at line 100 of file qqmljslexer_p.h.

◆ tokenOffset()

int QQmlJS::Lexer::tokenOffset ( ) const
inline

Definition at line 99 of file qqmljslexer_p.h.

◆ tokenSpell()

QStringView QQmlJS::Lexer::tokenSpell ( ) const
inline

Definition at line 105 of file qqmljslexer_p.h.

◆ tokenStartColumn()

int QQmlJS::Lexer::tokenStartColumn ( ) const
inline

Definition at line 103 of file qqmljslexer_p.h.

◆ tokenStartLine()

int QQmlJS::Lexer::tokenStartLine ( ) const
inline

Definition at line 102 of file qqmljslexer_p.h.

◆ tokenText()

QString Lexer::tokenText ( ) const

Definition at line 1557 of file qqmljslexer.cpp.

◆ tokenValue()

double QQmlJS::Lexer::tokenValue ( ) const
inline

Definition at line 107 of file qqmljslexer_p.h.

◆ yieldIsKeyWord()

bool QQmlJS::Lexer::yieldIsKeyWord ( ) const
inline

Definition at line 83 of file qqmljslexer_p.h.

◆ operator<<

QML_PARSER_EXPORT QDebug operator<< ( QDebug dbg,
const Lexer & l )
friend

Definition at line 463 of file qqmljslexer.cpp.


The documentation for this class was generated from the following files: