![]() |
ArkScript
A small, fast, functional and scripting language for video games
|
Namespaces | |
namespace | Diagnostics |
namespace | helper |
namespace | internal |
namespace | literals |
namespace | types |
namespace | Utils |
Classes | |
class | AssertionFailed |
An assertion error, only triggered from ArkScript code through (assert expr error-message) More... | |
class | BytecodeReader |
This class is just a helper to. More... | |
struct | Code |
struct | CodeError |
CodeError thrown by the compiler (parser, macro processor, optimizer, and compiler itself) More... | |
class | Error |
struct | mapping |
class | Repl |
class | State |
Ark state to handle the dirty job of loading and compiling ArkScript code. More... | |
struct | Symbols |
class | TypeError |
A type error triggered when types don't match. More... | |
class | UserType |
A class to be use C++ objects in ArkScript. More... | |
class | Value |
struct | Values |
struct | Version |
class | VM |
The ArkScript virtual machine, executing ArkScript bytecode. More... | |
class | Welder |
The welder joins all the compiler passes. More... | |
class | ZeroDivisionError |
A special zero division error triggered when a number is divided by 0. More... | |
Typedefs | |
using | bytecode_t = std::vector<uint8_t> |
Enumerations | |
enum class | BytecodeSegment { All , Symbols , Values , Code , HeadersOnly } |
enum class | ValueType { List = 0 , Number = 1 , String = 2 , PageAddr = 3 , CProc = 4 , Closure = 5 , User = 6 , Nil = 7 , True = 8 , False = 9 , Undefined = 10 , Reference = 11 , InstPtr = 12 , Any = 99 } |
Functions | |
bool | operator== (const Value &A, const Value &B) |
bool | operator< (const Value &A, const Value &B) |
bool | operator!= (const Value &A, const Value &B) noexcept |
bool | operator! (const Value &A) |
bool | operator== (const UserType &A, const UserType &B) |
bool | operator< (const UserType &A, const UserType &B) |
std::ostream & | operator<< (std::ostream &os, const UserType &A) |
Variables | |
constexpr uint16_t | FeatureImportSolver = 1 << 0 |
constexpr uint16_t | FeatureMacroProcessor = 1 << 1 |
constexpr uint16_t | FeatureASTOptimizer = 1 << 2 |
This is disabled so that embedding ArkScript does not prune nodes from the AST ; it is active in the arkscript executable. | |
constexpr uint16_t | FeatureIROptimizer = 1 << 3 |
constexpr uint16_t | FeatureNameResolver = 1 << 4 |
constexpr uint16_t | FeatureDumpIR = 1 << 14 |
constexpr uint16_t | FeatureTestFailOnException = 1 << 15 |
This feature should only be used in tests, to disable diagnostics generation and enable exceptions to be thrown. | |
constexpr uint16_t | DefaultFeatures |
constexpr std::size_t | MaxMacroProcessingDepth = 256 |
Controls the number of recursive calls to MacroProcessor::processNode. | |
constexpr std::size_t | MaxMacroUnificationDepth = 256 |
Controls the number of recursive calls to MacroProcessor::unify. | |
constexpr std::size_t | VMStackSize = 8192 |
constexpr std::array | types_to_str |
const auto | Nil = Value(ValueType::Nil) |
ArkScript Nil value. | |
const auto | False = Value(ValueType::False) |
ArkScript False value. | |
const auto | True = Value(ValueType::True) |
ArkScript True value. | |
using Ark::bytecode_t = std::vector<uint8_t> |
Definition at line 22 of file Common.hpp.
|
strong |
Enumerator | |
---|---|
All | |
Symbols | |
Values | |
Code | |
HeadersOnly |
Definition at line 28 of file BytecodeReader.hpp.
|
strong |
|
inlinenoexcept |
Definition at line 16 of file UserType.cpp.
|
noexcept |
Definition at line 21 of file UserType.cpp.
Definition at line 11 of file UserType.cpp.
|
constexpr |
const auto Ark::False = Value(ValueType::False) |
|
constexpr |
This is disabled so that embedding ArkScript does not prune nodes from the AST ; it is active in the arkscript
executable.
Definition at line 51 of file Constants.hpp.
Referenced by Ark::Welder::computeAST(), and main().
|
constexpr |
Definition at line 55 of file Constants.hpp.
Referenced by Ark::Welder::generateBytecode(), and main().
|
constexpr |
Definition at line 49 of file Constants.hpp.
Referenced by Ark::Welder::computeAST(), and main().
|
constexpr |
Definition at line 52 of file Constants.hpp.
Referenced by Ark::Welder::generateBytecode(), and main().
|
constexpr |
Definition at line 50 of file Constants.hpp.
Referenced by Ark::Welder::computeAST(), and main().
|
constexpr |
Definition at line 53 of file Constants.hpp.
Referenced by Ark::Welder::computeAST().
|
constexpr |
This feature should only be used in tests, to disable diagnostics generation and enable exceptions to be thrown.
Definition at line 57 of file Constants.hpp.
Referenced by Ark::Welder::computeAST(), and Ark::Welder::generateBytecode().
|
constexpr |
Controls the number of recursive calls to MacroProcessor::processNode.
Definition at line 66 of file Constants.hpp.
Referenced by Ark::internal::MacroProcessor::applyMacro(), and Ark::internal::MacroProcessor::processNode().
|
constexpr |
Controls the number of recursive calls to MacroProcessor::unify.
Definition at line 67 of file Constants.hpp.
Referenced by Ark::internal::FunctionExecutor::unify().
const auto Ark::Nil = Value(ValueType::Nil) |
ArkScript Nil value.
Definition at line 331 of file VM.hpp.
Referenced by Ark::internal::Future::resolve().
const auto Ark::True = Value(ValueType::True) |
|
constexpr |
Definition at line 52 of file Value.hpp.
Referenced by Ark::BytecodeReader::display(), Ark::types::displayContract(), Ark::VM::safeRun(), and Ark::types::typeListToString().
|
constexpr |
Definition at line 68 of file Constants.hpp.
Referenced by Ark::VM::safeRun().