QScxmlCompiler Class

The QScxmlCompiler class is a compiler for SCXML files. More...

Header: #include <QScxmlCompiler>
CMake: find_package(Qt6 REQUIRED COMPONENTS Scxml)
target_link_libraries(mytarget PRIVATE Qt6::Scxml)
qmake: QT += scxml

Public Types

class Loader

Public Functions

QScxmlCompiler(QXmlStreamReader *reader)
~QScxmlCompiler()
QScxmlStateMachine *compile()
QList<QScxmlError> errors() const
QString fileName() const
QScxmlCompiler::Loader *loader() const
void setFileName(const QString &fileName)
void setLoader(QScxmlCompiler::Loader *newLoader)

Detailed Description

Parses an SCXML file and dynamically instantiates a state machine for a successfully parsed SCXML file. If parsing fails, the new state machine cannot start. All errors are returned by QScxmlStateMachine::parseErrors().

To load an SCXML file, QScxmlStateMachine::fromFile or QScxmlStateMachine::fromData should be used. Using QScxmlCompiler directly is only needed when the compiler needs to use a custom QScxmlCompiler::Loader.

Member Function Documentation

QScxmlCompiler::QScxmlCompiler(QXmlStreamReader *reader)

Creates a new SCXML compiler for the specified reader.

[noexcept] QScxmlCompiler::~QScxmlCompiler()

Destroys the SCXML compiler.

QScxmlStateMachine *QScxmlCompiler::compile()

Parses an SCXML file and creates a new state machine from it.

If parsing is successful, the returned state machine can be initialized and started. If parsing fails, QScxmlStateMachine::parseErrors() can be used to retrieve a list of errors.

QList<QScxmlError> QScxmlCompiler::errors() const

Returns the list of parse errors.

QString QScxmlCompiler::fileName() const

Returns the file name associated with the current input.

See also setFileName().

QScxmlCompiler::Loader *QScxmlCompiler::loader() const

Returns the loader that is currently used to resolve and load URIs for the SCXML compiler.

See also setLoader().

void QScxmlCompiler::setFileName(const QString &fileName)

Sets the file name for the current input to fileName.

The file name is used for error reporting and for resolving relative path URIs.

See also fileName().

void QScxmlCompiler::setLoader(QScxmlCompiler::Loader *newLoader)

Sets newLoader to be used for resolving and loading URIs for the SCXML compiler.

See also loader().