32#ifndef _QORE_QORETYPE_H
34#define _QORE_QORETYPE_H
46DLLEXPORT
extern QoreNumberNode* ZeroNumber, * InfinityNumber, * NaNumber, * piNumber;
48DLLEXPORT
extern QoreString NothingTypeString, NullTypeString, TrueString,
49 FalseString, EmptyHashString, EmptyListString;
51DLLEXPORT
extern const QoreTypeInfo* anyTypeInfo,
69 *runTimeClosureTypeInfo,
70 *callReferenceTypeInfo,
74 *base64BinaryTypeInfo,
75 *base64UrlBinaryTypeInfo,
84 *softAutoListTypeInfo,
87 *bigIntOrFloatTypeInfo,
88 *bigIntFloatOrNumberTypeInfo,
89 *floatOrNumberTypeInfo,
91 *bigIntOrNothingTypeInfo,
92 *floatOrNothingTypeInfo,
93 *numberOrNothingTypeInfo,
94 *stringOrNothingTypeInfo,
95 *boolOrNothingTypeInfo,
96 *binaryOrNothingTypeInfo,
97 *objectOrNothingTypeInfo,
98 *dateOrNothingTypeInfo,
99 *hashOrNothingTypeInfo,
100 *autoHashOrNothingTypeInfo,
101 *listOrNothingTypeInfo,
102 *autoListOrNothingTypeInfo,
103 *nullOrNothingTypeInfo,
104 *codeOrNothingTypeInfo,
105 *dataOrNothingTypeInfo,
106 *referenceOrNothingTypeInfo,
108 *hexBinaryOrNothingTypeInfo,
109 *base64BinaryOrNothingTypeInfo,
110 *base64UrlBinaryOrNothingTypeInfo,
111 *softBinaryOrNothingTypeInfo,
112 *softBigIntOrNothingTypeInfo,
113 *softFloatOrNothingTypeInfo,
114 *softNumberOrNothingTypeInfo,
115 *softBoolOrNothingTypeInfo,
116 *softStringOrNothingTypeInfo,
117 *softDateOrNothingTypeInfo,
118 *softListOrNothingTypeInfo,
119 *softAutoListOrNothingTypeInfo,
120 *timeoutOrNothingTypeInfo;
162enum qore_type_result_e {
175DLLEXPORT
const QoreClass* typeInfoGetUniqueReturnClass(
const QoreTypeInfo* typeInfo);
176DLLEXPORT
bool typeInfoHasType(
const QoreTypeInfo* typeInfo);
177DLLEXPORT
const char* typeInfoGetName(
const QoreTypeInfo* typeInfo);
178DLLEXPORT
const QoreTypeInfo* typeInfoGetElementType(
const QoreTypeInfo* typeInfo);
179DLLEXPORT
const TypedHashDecl* typeInfoGetTypedHash(
const QoreTypeInfo* typeInfo);
181DLLEXPORT qore_type_result_e typeInfoAcceptsType(
const QoreTypeInfo* typeInfo,
const QoreTypeInfo* otherTypeInfo);
182DLLEXPORT qore_type_result_e typeInfoReturnsType(
const QoreTypeInfo* typeInfo,
const QoreTypeInfo* otherTypeInfo);
189DLLEXPORT
const QoreTypeInfo* qore_get_value_type(
const QoreTypeInfo* typeInfo);
191DLLEXPORT
const QoreTypeInfo* qore_get_or_nothing_type(
const QoreTypeInfo* typeInfo);
194DLLEXPORT
const QoreTypeInfo* qore_get_complex_hash_type(
const QoreTypeInfo* valueTypeInfo);
196DLLEXPORT
const QoreTypeInfo* qore_get_complex_hash_or_nothing_type(
const QoreTypeInfo* valueTypeInfo);
198DLLEXPORT
const QoreTypeInfo* qore_get_complex_list_type(
const QoreTypeInfo* valueTypeInfo);
200DLLEXPORT
const QoreTypeInfo* qore_get_complex_list_or_nothing_type(
const QoreTypeInfo* valueTypeInfo);
202DLLEXPORT
const QoreTypeInfo* qore_get_complex_softlist_type(
const QoreTypeInfo* valueTypeInfo);
204DLLEXPORT
const QoreTypeInfo* qore_get_complex_softlist_or_nothing_type(
const QoreTypeInfo* valueTypeInfo);
206DLLEXPORT
const QoreTypeInfo* qore_get_complex_reference_type(
const QoreTypeInfo* valueTypeInfo);
208DLLEXPORT
const QoreTypeInfo* qore_get_complex_reference_or_nothing_type(
const QoreTypeInfo* valueTypeInfo);
211DLLEXPORT
const QoreTypeInfo* qore_get_type_from_string(
const char* str,
ExceptionSink& xsink);
214DLLEXPORT
const QoreClass* type_info_get_return_class(
const QoreTypeInfo* typeInfo);
The base class for all value and parse types in Qore expression trees.
Definition AbstractQoreNode.h:57
DLLEXPORT void ref() const
increments the reference count
Qore's parse tree/value type for date-time values, reference-counted, dynamically-allocated only.
Definition DateTimeNode.h:47
container for holding Qore-language exception information and also for registering a "thread_exit" ca...
Definition ExceptionSink.h:50
defines a Qore-language class
Definition QoreClass.h:310
This is the hash or associative list container type in Qore, dynamically allocated only,...
Definition QoreHashNode.h:51
This is the list container type in Qore, dynamically allocated only, reference counted.
Definition QoreListNode.h:52
Qore's arbitrary-precision number value type, dynamically-allocated only, reference counted.
Definition QoreNumberNode.h:51
the implementation of Qore's object data type, reference counted, dynamically-allocated only
Definition QoreObject.h:61
Qore's string type supported by the QoreEncoding class.
Definition QoreString.h:93
Qore's string value type, reference counted, dynamically-allocated only.
Definition QoreStringNode.h:50
typed hash declaration
Definition TypedHashDecl.h:44
int16_t qore_type_t
used to identify unique Qore data and parse types (descendents of AbstractQoreNode)
Definition common.h:76
The main value class in Qore, designed to be passed by value.
Definition QoreValue.h:279