![]() |
ArkScript
A small, lisp-inspired, functional scripting language
|
Common code for the compiler. More...
#include <array>#include <string_view>#include <vector>#include <cinttypes>#include <Ark/Constants.hpp>Go to the source code of this file.
Namespaces | |
| namespace | Ark |
| namespace | Ark::internal |
| namespace | Ark::internal::bytecode |
| namespace | Ark::internal::Language |
Typedefs | |
| using | Ark::bytecode_t = std::vector<uint8_t> |
Enumerations | |
| enum class | Ark::internal::NodeType { Ark::internal::Symbol , Ark::internal::Capture , Ark::internal::Keyword , Ark::internal::String , Ark::internal::Number , Ark::internal::List , Ark::internal::Spread , Ark::internal::Field , Ark::internal::Macro , Ark::internal::Namespace , Ark::internal::Unused } |
| The different node types available. More... | |
| enum class | Ark::internal::Keyword { Ark::internal::Fun , Ark::internal::Let , Ark::internal::Mut , Ark::internal::Set , Ark::internal::If , Ark::internal::While , Ark::internal::Begin , Ark::internal::Import , Ark::internal::Del } |
| The different keywords available. More... | |
Variables | |
| constexpr std::array | Ark::internal::bytecode::Magic = { 'a', 'r', 'k', '\0' } |
| constexpr std::array | Ark::internal::bytecode::Version |
| constexpr std::size_t | Ark::internal::bytecode::TimestampLength = 8 |
| constexpr std::size_t | Ark::internal::bytecode::HeaderSize = Magic.size() + Version.size() + TimestampLength |
| constexpr std::array< std::string_view, 11 > | Ark::internal::nodeTypes |
| Node types as string, in the same order as the enum NodeType. | |
| constexpr std::array< std::string_view, 9 > | Ark::internal::keywords |
| List of available keywords in ArkScript. | |
| constexpr std::string_view | Ark::internal::Language::AppendInPlace = "append!" |
| constexpr std::string_view | Ark::internal::Language::ConcatInPlace = "concat!" |
| constexpr std::string_view | Ark::internal::Language::PopInPlace = "pop!" |
| constexpr std::string_view | Ark::internal::Language::SetAtInPlace = "@=" |
| constexpr std::string_view | Ark::internal::Language::SetAt2InPlace = "@@=" |
| constexpr std::array | Ark::internal::Language::UpdateRef |
| All the builtins that modify in place a variable. | |
| constexpr std::array< std::string_view, 9 > | Ark::internal::Language::listInstructions |
| constexpr std::string_view | Ark::internal::Language::SysArgs = "builtin__sys:args" |
| constexpr std::string_view | Ark::internal::Language::SysProgramName = "builtin__sys:programName" |
| constexpr std::string_view | Ark::internal::Language::And = "and" |
| constexpr std::string_view | Ark::internal::Language::Or = "or" |
| constexpr std::string_view | Ark::internal::Language::Undef = "$undef" |
| constexpr std::string_view | Ark::internal::Language::Symcat = "$symcat" |
| constexpr std::string_view | Ark::internal::Language::Argcount = "$argcount" |
| constexpr std::string_view | Ark::internal::Language::Repr = "$repr" |
| constexpr std::string_view | Ark::internal::Language::AsIs = "$as-is" |
| constexpr std::string_view | Ark::internal::Language::Type = "$type" |
| constexpr std::array | Ark::internal::Language::macros |
| constexpr std::array< std::string_view, 24 > | Ark::internal::Language::operators |
Common code for the compiler.
Definition in file Common.hpp.