Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
QV4::Compiler::ControlFlowLoop Struct Reference

#include <qv4compilercontrolflow_p.h>

+ Inheritance diagram for QV4::Compiler::ControlFlowLoop:
+ Collaboration diagram for QV4::Compiler::ControlFlowLoop:

Public Member Functions

 ControlFlowLoop (Codegen *cg, BytecodeGenerator::Label *breakLabel, BytecodeGenerator::Label *continueLabel=nullptr, std::function< void()> cleanup=nullptr)
 
BytecodeGenerator::Label getUnwindTarget (UnwindType type, const QString &label) override
 
QString label () const override
 
- Public Member Functions inherited from QV4::Compiler::ControlFlowUnwindCleanup
 ControlFlowUnwindCleanup (Codegen *cg, std::function< void()> cleanup, Type type=Block)
 
 ~ControlFlowUnwindCleanup ()
 
bool requiresUnwind () override
 
- Public Member Functions inherited from QV4::Compiler::ControlFlowUnwind
 ControlFlowUnwind (Codegen *cg, Type type)
 
void setupUnwindHandler ()
 
void emitUnwindHandler ()
 
virtual BytecodeGenerator::ExceptionHandlerunwindHandler () override
 
- Public Member Functions inherited from QV4::Compiler::ControlFlow
 ControlFlow (Codegen *cg, Type type)
 
virtual ~ControlFlow ()
 
UnwindTarget unwindTarget (UnwindType type, const QString &label=QString())
 
bool hasLoop () const
 
BytecodeGenerator::ExceptionHandlerparentUnwindHandler ()
 

Public Attributes

QString loopLabel
 
BytecodeGenerator::LabelbreakLabel = nullptr
 
BytecodeGenerator::LabelcontinueLabel = nullptr
 
- Public Attributes inherited from QV4::Compiler::ControlFlowUnwindCleanup
std::function< void()> cleanup = nullptr
 
- Public Attributes inherited from QV4::Compiler::ControlFlowUnwind
BytecodeGenerator::ExceptionHandler unwindLabel
 
- Public Attributes inherited from QV4::Compiler::ControlFlow
Codegencg
 
ControlFlowparent
 
Type type
 

Additional Inherited Members

- Public Types inherited from QV4::Compiler::ControlFlow
enum  Type {
  Loop , With , Block , Finally ,
  Catch
}
 
enum  UnwindType { Break , Continue , Return }
 
using Reference = Codegen::Reference
 
using BytecodeGenerator = Moth::BytecodeGenerator
 
using Instruction = Moth::Instruction
 
- Protected Member Functions inherited from QV4::Compiler::ControlFlow
QString loopLabel () const
 
BytecodeGeneratorgenerator () const
 

Detailed Description

Definition at line 181 of file qv4compilercontrolflow_p.h.

Constructor & Destructor Documentation

◆ ControlFlowLoop()

QV4::Compiler::ControlFlowLoop::ControlFlowLoop ( Codegen * cg,
BytecodeGenerator::Label * breakLabel,
BytecodeGenerator::Label * continueLabel = nullptr,
std::function< void()> cleanup = nullptr )
inline

Definition at line 187 of file qv4compilercontrolflow_p.h.

Member Function Documentation

◆ getUnwindTarget()

BytecodeGenerator::Label QV4::Compiler::ControlFlowLoop::getUnwindTarget ( UnwindType type,
const QString & label )
inlineoverridevirtual

◆ label()

QString QV4::Compiler::ControlFlowLoop::label ( ) const
inlineoverridevirtual

Reimplemented from QV4::Compiler::ControlFlow.

Definition at line 208 of file qv4compilercontrolflow_p.h.

References loopLabel.

Member Data Documentation

◆ breakLabel

BytecodeGenerator::Label* QV4::Compiler::ControlFlowLoop::breakLabel = nullptr

Definition at line 184 of file qv4compilercontrolflow_p.h.

Referenced by getUnwindTarget().

◆ continueLabel

BytecodeGenerator::Label* QV4::Compiler::ControlFlowLoop::continueLabel = nullptr

Definition at line 185 of file qv4compilercontrolflow_p.h.

Referenced by getUnwindTarget().

◆ loopLabel

QString QV4::Compiler::ControlFlowLoop::loopLabel

Definition at line 183 of file qv4compilercontrolflow_p.h.

Referenced by getUnwindTarget(), and label().


The documentation for this struct was generated from the following file: