NewLang Project
Yet another programm language
|
Go to the source code of this file.
Classes | |
class | newlang::Sync |
class | newlang::VariableTaken |
class | newlang::VirtualFuncImpl< R, Args > |
class | newlang::VariableOp |
struct | newlang::VariableShared |
struct | newlang::VariableWeak |
struct | newlang::is_shared_ptr< T > |
struct | newlang::is_shared_ptr< std::shared_ptr< T > > |
class | newlang::Variable |
Namespaces | |
namespace | newlang |
Macros | |
#define | INCLUDED_VARIABLE_H_ |
#define | DEFINE_OPERATOR(name) |
#define | VARIABLE_TYPES(_) |
#define | DEFINE_ENUM(name, value) name = static_cast<uint8_t>(value), |
#define | MAKE_TYPE_NAME(type_name) type_name |
#define | DEFINE_CASE(name, _) |
#define | PLACE_RANGE_CHECK_VALUE(itype, utype) |
Typedefs | |
typedef std::shared_ptr< Obj > | newlang::ObjPtr |
typedef std::shared_ptr< const Obj > | newlang::ObjPtrConst |
typedef std::weak_ptr< Obj > | newlang::ObjWeak |
typedef std::weak_ptr< const Obj > | newlang::ObjWeakConst |
typedef std::shared_ptr< Term > | newlang::TermPtr |
typedef std::shared_ptr< const Term > | newlang::TermPtrConst |
typedef std::shared_ptr< Variable > | newlang::VariablePtr |
typedef std::variant< std::monostate, VariableShared, VariableWeak, VariableTaken, ObjPtr, int64_t, double, std::string, std::wstring, Rational > | newlang::VariableVariant |
Enumerations | |
enum class | newlang::RefType : uint8_t { newlang::Value = 0 , newlang::Shared = 1 , newlang::LiteSingle = 2 , newlang::LiteThread = 3 , newlang::SyncMono = 4 , newlang::SyncMulti = 5 , newlang::SharedConst = 6 , newlang::LiteSingleConst = 7 , newlang::LiteThreadConst = 8 , newlang::SyncMonoConst = 9 , newlang::SyncMultiConst = 10 } |
enum class | newlang::VariableCase : uint8_t { newlang::DEFINE_ENUM , newlang::EMPTY = static_cast<uint8_t>(0) , newlang::SHARED = static_cast<uint8_t>(1) , newlang::WEAK = static_cast<uint8_t>(2) , newlang::TAKEN = static_cast<uint8_t>(3) , newlang::OBJECT = static_cast<uint8_t>(4) , newlang::INTEGER = static_cast<uint8_t>(5) , newlang::DOUBLE = static_cast<uint8_t>(6) , newlang::STRING = static_cast<uint8_t>(7) , newlang::WSTRING = static_cast<uint8_t>(8) , newlang::RATIONAL = static_cast<uint8_t>(9) } |
Functions | |
std::string | newlang::utf8_encode (const std::wstring wstr) |
std::wstring | newlang::utf8_decode (const std::string str) |
constexpr RefType | newlang::RefTypeFromString (const std::string_view text) |
constexpr bool | newlang::isLiteRef (RefType type) |
constexpr bool | newlang::isLiteSyncRef (RefType type) |
bool | newlang::isHeavyRef (RefType type) |
constexpr bool | newlang::isConstRef (RefType type) |
constexpr bool | newlang::isEditableRef (RefType type) |
constexpr bool | newlang::isValidReference (RefType type, RefType test) |
const char * | newlang::VariableCaseToString (size_t index) |
#define INCLUDED_VARIABLE_H_ |
Definition at line 3 of file variable.h.
#define DEFINE_OPERATOR | ( | name | ) |
Definition at line 349 of file variable.h.
#define VARIABLE_TYPES | ( | _ | ) |
Definition at line 403 of file variable.h.
Referenced by newlang::VariableCaseToString().
#define DEFINE_ENUM | ( | name, | |
value ) name = static_cast<uint8_t>(value), |
Definition at line 418 of file variable.h.
#define MAKE_TYPE_NAME | ( | type_name | ) | type_name |
Definition at line 423 of file variable.h.
#define DEFINE_CASE | ( | name, | |
_ ) |
#define PLACE_RANGE_CHECK_VALUE | ( | itype, | |
utype ) |
Definition at line 643 of file variable.h.