3 #include <yuni/core/string.h> 4 #include <yuni/core/smartptr/intrusive.h> 5 #include "details/ir/fwd.h" 6 #include "details/utils/clid.h" 10 #include "qualifiers.h" 11 #include "interface.h" 13 #include "classdef-follow.h" 14 #include "details/reporting/report.h" 25 :
public Yuni::IIntrusiveSmartPtr<Classdef, false, Yuni::Policy::SingleThreaded> {
66 bool isClass(
const AnyString& name)
const;
155 template<
class T,
class TableT>
void doPrint(T& out,
const TableT& table)
const;
162 #include "classdef.hxx" const char * filename
filename (acquired by the classdef-table)
Definition: classdef.h:149
ClassdefFollow followup
Other calls to follow.
Definition: classdef.h:143
void mutateToBuiltin(nytype_t)
Mutate the type to builtin (not void)
Definition: classdef.hxx:95
bool isLinkedToAtom() const
Get if the type is defined by an atom (an 'atom' is provided)
Definition: classdef.hxx:67
Definition: classdef-follow.h:11
bool isBuiltingUnsigned() const
Get if the classdef is a builtin unsigned int (u32, u64...)
Definition: classdef.hxx:49
ClassdefInterface interface
Interface.
Definition: classdef.h:141
Definition: interface.h:11
bool operator==(const Classdef &) const
Comparison.
void mutateToAny()
Mutate the type to any.
Definition: classdef.hxx:107
bool hasAtom() const
Get if the classdef has a linked atom.
Definition: classdef.hxx:79
CLID clid
Classdef ID.
Definition: classdef.h:132
void mutateToAtom(Atom *)
Mutate to a well-known type (from atom)
Definition: classdef.hxx:113
Class definition.
Definition: classdef.h:24
bool isBuiltinU8() const
Get if the classdef is a builtin u32.
Definition: classdef.hxx:44
Atom * atom
Atom.
Definition: classdef.h:130
Qualifiers qualifiers
All qualifiers (can be shared between several classdef)
Definition: classdef.h:139
bool isBuiltinU64() const
Get if the classdef is a builtin u64.
Definition: classdef.hxx:34
bool isClass() const
Get if the type is a class.
Definition: classdef.cpp:54
bool instance
Has a value ? (is a variable)
Definition: classdef.h:136
void mutateToPtr2Func(Atom *)
Mutate to a ptr-2-func/method.
Definition: classdef.hxx:119
Classdef & operator=(const Classdef &)=delete
Assignment.
bool isBuiltin() const
Get if the classdef is a builtin type (not 'void')
Definition: classdef.hxx:19
bool isAny() const
Get if the type is 'any'.
Definition: classdef.hxx:74
bool hasConstraints() const
Get if the classdef has some constraints.
Definition: classdef.hxx:125
Definition of a single class or function.
Definition: atom.h:37
void mutateToBuiltinOrVoid(nytype_t)
Mutate the type to builtin (or void)
Definition: classdef.hxx:101
bool operator!=(const Classdef &) const
Not equal.
bool isVoid() const
Get if the classdef is void.
Definition: classdef.hxx:62
nytype_t kind
Inner builtin type (custom type if == nyt_any)
Definition: classdef.h:128
bool isVariable() const
Get if is a variable.
Definition: classdef.hxx:84
bool isRawPointer() const
Get if the classdef is a builtin pointer.
Definition: classdef.hxx:29
bool isBuiltinOrVoid() const
Get if the classdef is a builtin type ('void' included)
Definition: classdef.hxx:24
CLID parentclid
Parent class ID.
Definition: classdef.h:134
void mutateToVoid()
Mutate the defintiion to 'void'.
Definition: classdef.hxx:89
void print(Yuni::String &out, const ClassdefTableView &table, bool clearBefore=true) const
Export the classdef to a human readable string.
Definition: classdef.cpp:42
bool isBuiltinU32() const
Get if the classdef is a builtin u32.
Definition: classdef.hxx:39
static const Classdef nullcdef
Null cdef.
Definition: classdef.h:27
Definition: qualifiers.h:9
Classdef()
Default constructor.
Definition: classdef.hxx:8
Definition: classdef-table-view.h:9