644 |
struct VMInt8Array { |
struct VMInt8Array { |
645 |
int8_t* data; |
int8_t* data; |
646 |
int size; |
int size; |
647 |
|
bool readonly; ///< Whether the array data may be modified or just be read. |
648 |
|
|
649 |
VMInt8Array() : data(NULL), size(0) {} |
VMInt8Array() : data(NULL), size(0), readonly(false) {} |
650 |
}; |
}; |
651 |
|
|
652 |
/** @brief Virtual machine script variable. |
/** @brief Virtual machine script variable. |
871 |
* ScriptVM::exec() call. |
* ScriptVM::exec() call. |
872 |
*/ |
*/ |
873 |
virtual size_t instructionsPerformed() const = 0; |
virtual size_t instructionsPerformed() const = 0; |
874 |
|
|
875 |
|
/** |
876 |
|
* Sends a signal to this script execution instance to abort its script |
877 |
|
* execution as soon as possible. This method is called i.e. when one |
878 |
|
* script execution instance intends to stop another script execution |
879 |
|
* instance. |
880 |
|
*/ |
881 |
|
virtual void signalAbort() = 0; |
882 |
}; |
}; |
883 |
|
|
884 |
/** @brief Script callback for a certain event. |
/** @brief Script callback for a certain event. |
910 |
}; |
}; |
911 |
|
|
912 |
/** |
/** |
913 |
|
* Reflects the precise position and span of a specific code block within |
914 |
|
* a script. This is currently only used for the locations of commented |
915 |
|
* code blocks due to preprocessor statements. |
916 |
|
* |
917 |
|
* @see VMParserContext::preprocessorComments() |
918 |
|
*/ |
919 |
|
struct CodeBlock { |
920 |
|
int firstLine; ///< The first line number of this code block within the script (indexed with 1 being the very first line). |
921 |
|
int lastLine; ///< The last line number of this code block within the script. |
922 |
|
int firstColumn; ///< The first column of this code block within the script (indexed with 1 being the very first column). |
923 |
|
int lastColumn; ///< The last column of this code block within the script. |
924 |
|
}; |
925 |
|
|
926 |
|
/** |
927 |
* Encapsulates a noteworty parser issue. This encompasses the type of the |
* Encapsulates a noteworty parser issue. This encompasses the type of the |
928 |
* issue (either a parser error or parser warning), a human readable |
* issue (either a parser error or parser warning), a human readable |
929 |
* explanation text of the error or warning and the location of the |
* explanation text of the error or warning and the location of the |
1016 |
virtual std::vector<ParserIssue> warnings() const = 0; |
virtual std::vector<ParserIssue> warnings() const = 0; |
1017 |
|
|
1018 |
/** |
/** |
1019 |
|
* Returns all code blocks of the script which were filtered out by the |
1020 |
|
* preprocessor. |
1021 |
|
*/ |
1022 |
|
virtual std::vector<CodeBlock> preprocessorComments() const = 0; |
1023 |
|
|
1024 |
|
/** |
1025 |
* Returns the translated virtual machine representation of an event |
* Returns the translated virtual machine representation of an event |
1026 |
* handler block (i.e. "on note ... end on" code block) within the |
* handler block (i.e. "on note ... end on" code block) within the |
1027 |
* parsed script. This translated representation of the event handler |
* parsed script. This translated representation of the event handler |