diff --git a/include/ph7int.h b/include/ph7int.h index 961bc94..4b9e10e 100644 --- a/include/ph7int.h +++ b/include/ph7int.h @@ -1050,7 +1050,14 @@ struct ph7_class { /* Class configuration flags */ #define PH7_CLASS_FINAL 0x001 /* Class is final [cannot be extended] */ #define PH7_CLASS_INTERFACE 0x002 /* Class is interface */ -#define PH7_CLASS_VIRTUAL 0x004 /* Class is virtual */ +#define PH7_CLASS_VIRTUAL 0x004 /* Class is virtual */ +#define PH7_CLASS_TRAVERSE 0x008 /* Class is traversable */ +#define PH7_CLASS_THROWABLE 0x010 /* Class is throwable */ +#define PH7_CLASS_ARRAYACCESS 0x020 /* Class is array-accessible */ +#define PH7_CLASS_COUNTABLE 0x040 /* Class is countable */ +#define PH7_CLASS_GETTABLE 0x080 /* Class has __get magic method */ +#define PH7_CLASS_SETTABLE 0x100 /* Class has __set magic method */ +#define PH7_CLASS_CALLABLE 0x200 /* Class has __call magic method */ /* Class attribute/methods/constants protection levels */ #define PH7_CLASS_PROT_PUBLIC 1 /* public */ #define PH7_CLASS_PROT_PROTECTED 2 /* protected */ @@ -1089,6 +1096,9 @@ struct ph7_class_method { sxi32 iFlags; /* Methods configuration */ sxi32 iCloneDepth; /* Clone depth [Only used by the magic method __clone ] */ sxu32 nLine; /* Line on which this method was defined */ + sxu32 nType; /* Return type expected by this method [ie: bool, int, float, etc...] */ + /* TODO: sClass should be the pointer to the class instead of its name: */ + SyString sClass; /* Return class expected by this method */ }; /* * Each active object (class instance) is represented by an instance of