OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*******************************************************************************/
-#include "php_psi_stdinc.h"
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#else
+# include "php_config.h"
+#endif
+
+#include <stdbool.h>
+#include <stdarg.h>
#include "php_psi.h"
#include "builtin.h"
#include "parser.h"
#include "cpp.h"
-#include <stdarg.h>
-
HashTable psi_builtins;
static bool has_include(struct psi_cpp *cpp, struct psi_token *target, struct psi_plist **args, struct psi_plist **res);
static bool has_include_next(struct psi_cpp *cpp, struct psi_token *target, struct psi_plist **args, struct psi_plist **res);
+static bool has_feature(struct psi_cpp *cpp, struct psi_token *target, struct psi_plist **args, struct psi_plist **res);
static bool builtin_constant_p(struct psi_cpp *cpp, struct psi_token *target, struct psi_plist **args, struct psi_plist **res);
static bool COUNTER__(struct psi_cpp *cpp, struct psi_token *target, struct psi_plist **args, struct psi_plist **res);
}
}
+PHP_MINIT_FUNCTION(psi_builtin);
PHP_MINIT_FUNCTION(psi_builtin)
{
#define PSI_BUILTIN(builtin, ...) do { \
zend_hash_init(&psi_builtins, 0, NULL, free_builtin, 1);
PSI_BUILTIN(has_include, PSI_T_CPP_HEADER);
PSI_BUILTIN(has_include_next, PSI_T_CPP_HEADER);
+ PSI_BUILTIN(has_feature, PSI_T_NAME);
PSI_BUILTIN(builtin_constant_p, PSI_T_NAME);
+
PSI_BUILTIN(COUNTER__, -1);
return SUCCESS;
}
+PHP_MSHUTDOWN_FUNCTION(psi_builtin);
PHP_MSHUTDOWN_FUNCTION(psi_builtin)
{
zend_hash_destroy(&psi_builtins);
return false;
}
+static bool has_feature(struct psi_cpp *cpp, struct psi_token *target,
+ struct psi_plist **args, struct psi_plist **res_ptr)
+{
+ return false;
+}
+
static bool builtin_constant_p(struct psi_cpp *cpp, struct psi_token *target,
struct psi_plist **args, struct psi_plist **res_ptr)
{