Prepare changes for classes and their methods

This commit is contained in:
yvan-burrie 2018-08-02 04:36:17 +02:00
parent 6527b58b74
commit 7f023b0e41
1 changed files with 11 additions and 1 deletions

View File

@ -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