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);
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;
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)
{