nany
Public Attributes | Static Public Attributes | List of all members
ny::Classdef Struct Referencefinal

Class definition. More...

#include <classdef.h>

Inheritance diagram for ny::Classdef:

Public Member Functions

Constructor
 Classdef ()
 Default constructor.
 
 Classdef (const Classdef &)=default
 Copy constructor.
 
 Classdef (const CLID &)
 Default constructor with a given clid.
 
Queries
bool isBuiltin () const
 Get if the classdef is a builtin type (not 'void')
 
bool isBuiltinOrVoid () const
 Get if the classdef is a builtin type ('void' included)
 
bool isRawPointer () const
 Get if the classdef is a builtin pointer.
 
bool isBuiltinU64 () const
 Get if the classdef is a builtin u64.
 
bool isBuiltinU32 () const
 Get if the classdef is a builtin u32.
 
bool isBuiltinU8 () const
 Get if the classdef is a builtin u32.
 
bool isBuiltingUnsigned () const
 Get if the classdef is a builtin unsigned int (u32, u64...)
 
bool isVoid () const
 Get if the classdef is void.
 
bool isLinkedToAtom () const
 Get if the type is defined by an atom (an 'atom' is provided)
 
bool isAny () const
 Get if the type is 'any'.
 
bool isClass () const
 Get if the type is a class.
 
bool isClass (const AnyString &name) const
 Get if the type is a given class.
 
bool isVariable () const
 Get if is a variable.
 
bool hasAtom () const
 Get if the classdef has a linked atom.
 
bool hasConstraints () const
 Get if the classdef has some constraints.
 
Mutations
void mutateToVoid ()
 Mutate the defintiion to 'void'.
 
void mutateToBuiltin (nytype_t)
 Mutate the type to builtin (not void)
 
void mutateToBuiltinOrVoid (nytype_t)
 Mutate the type to builtin (or void)
 
void mutateToAny ()
 Mutate the type to any.
 
void mutateToAtom (Atom *)
 Mutate to a well-known type (from atom)
 
void mutateToPtr2Func (Atom *)
 Mutate to a ptr-2-func/method.
 
void import (const Classdef &rhs)
 Import from another classdef.
 
Info
void print (Yuni::String &out, const ClassdefTableView &table, bool clearBefore=true) const
 Export the classdef to a human readable string. More...
 
YString print (const ClassdefTableView &table) const
 
void print (Logs::Report &, const ClassdefTableView &table) const
 
Operators
bool operator== (const Classdef &) const
 Comparison.
 
bool operator!= (const Classdef &) const
 Not equal.
 
Classdefoperator= (const Classdef &)=delete
 Assignment.
 

Public Attributes

nytype_t kind = nyt_void
 Inner builtin type (custom type if == nyt_any)
 
Atomatom = nullptr
 Atom.
 
CLID clid
 Classdef ID.
 
CLID parentclid
 Parent class ID.
 
bool instance = false
 Has a value ? (is a variable)
 
Qualifiers qualifiers
 All qualifiers (can be shared between several classdef)
 
ClassdefInterface interface
 Interface.
 
ClassdefFollow followup
 Other calls to follow.
 
struct {
   uint   line = 0
 
   uint   offset = 0
 
   const char *   filename = nullptr
 filename (acquired by the classdef-table)
 
origins
 

Static Public Attributes

static const Classdef nullcdef
 Null cdef.
 

Detailed Description

Class definition.

Member Function Documentation

§ print()

void ny::Classdef::print ( Yuni::String &  out,
const ClassdefTableView table,
bool  clearBefore = true 
) const

Export the classdef to a human readable string.

Parameters
[out]outThe string where to append the data

The documentation for this struct was generated from the following files: