1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
/**
* zend.h
*
* zend namespace
*
* @author Valeriy_Dmitriev <ufabiz@gmail.com>
*/
#ifndef PHPCPP_ZEND_INCLUDE_C_H_
#define PHPCPP_ZEND_INCLUDE_C_H_
/**
* Namespace Php
*/
namespace Php {
/**
* collection of Zend constants
*/
namespace Zend {
/**
* access types (flags)
* see Zend/zend_compile.h
*/
/**
* access types for methods and properties
* (method flags)
*/
enum class AccMemb {
// method flags (types):
STATIC ,//= ZEND_ACC_STATIC, //0x01
ABSTRACT ,//= ZEND_ACC_ABSTRACT, //0x02
FINAL ,//= ZEND_ACC_FINAL, //0x04
//IMPLEMENTED_ABSTRACT ,//= ZEND_ACC_IMPLEMENTED_ABSTRACT, //0x08
//method flag (bc only), any method that has this flag can be used statically and non statically.
//ALLOW_STATIC ,//= ZEND_ACC_ALLOW_STATIC, //0x10000
// method flags (visibility)
// The order of those must be kept - public < protected < private
PUBLIC ,//= ZEND_ACC_PUBLIC, //0x100
PROTECTED ,//= ZEND_ACC_PROTECTED, //0x200
PRIVATE ,//= ZEND_ACC_PRIVATE, //0x400
PPP_MASK ,//= ZEND_ACC_PPP_MASK, //(ZEND_ACC_PUBLIC | ZEND_ACC_PROTECTED | ZEND_ACC_PRIVATE)
// method flags (special method detection)
//CTOR ,//= ZEND_ACC_CTOR, //0x2000
//DTOR ,//= ZEND_ACC_DTOR, //0x4000
//CLONE ,//= ZEND_ACC_CLONE, //0x8000
//shadow of parent's private method/property
//SHADOW ,//= ZEND_ACC_SHADOW //0x20000
// additional field for designation flag CONSTANT. Not in the Zend engine
CONSTANT ,//= 0 //0
};
/**
* access types for classes
* (class flags)
*/
enum class AccClass {
NOSET ,//= .. , //0
// ZEND_ACC_IMPLICIT_ABSTRACT_CLASS is used for abstract classes (since it is set by any abstract method even interfaces MAY have it set, too).
//IMPLICIT_ABSTRACT ,//= ZEND_ACC_IMPLICIT_ABSTRACT_CLASS, //0x10
//ZEND_ACC_EXPLICIT_ABSTRACT_CLASS denotes that a class was explicitly defined as abstract by using the keyword.
ABSTRACT ,//= ZEND_ACC_EXPLICIT_ABSTRACT_CLASS, //0x20
FINAL ,//= ZEND_ACC_FINAL_CLASS, //0x40
INTERFACE ,//= ZEND_ACC_INTERFACE, //0x80
TRAIT ,//= ZEND_ACC_TRAIT, //0x120
//class implement interface(s) flag,
//IMPLEMENT_INTERFACES ,//= ZEND_ACC_IMPLEMENT_INTERFACES, //0x80000
//IMPLEMENT_TRAITS ,//= ZEND_ACC_IMPLEMENT_TRAITS, //0x400000
};
}
/**
* End of namespace Php
*/
}
#endif /* PHPCPP_ZEND_INCLUDE_C_H_ */
|