- Qt 6.8
- Qt SCXML
- C++ Classes
- QScxmlCompiler
- Qt 6.8.3 Reference Documentation

# 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`

- List of all members, including inherited members

## 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().