(function(sunlight, document, undefined){

	if (sunlight === undefined || sunlight["registerLanguage"] === undefined) {
		throw "Include sunlight.js before including language files";
	}

	sunlight.registerLanguage("php", {
		keywords: [
			//class qualifiers
			"public", "private", "protected", "static", "final", "abstract",
			
			//class extension
			"extends", "implements",

			//member qualifiers
			"const", "var",

			//types
			"class", "interface",

			//primitives
			"integer", "boolean", "int", "bool", "double", "float", "real", "string",

			//literals
			"null", "true", "false",

			//looping
			"for", "foreach", "do", "while", "as", "endwhile", "endfor", "endforeach",

			//scoping
			"namespace",

			//flow control
			"if", "else", "elseif", "try", "catch", "break", "continue", "goto", "case", "throw", "switch", "endif", "endswitch", "endwhile",

			//type comparison
			"instanceof",
			
			//closures
			"use",
			
			//logic
			"and", "or", "xor",
			
			//oo
			"self", "parent", "clone",

			//other
			"default", "new", "function", "declare", "enddeclare", "global"
		],
		
		customTokens: {
			"function": {
				//php -r "$f = get_defined_functions(); $f = $f['internal']; arsort($f); echo '\"' . implode($f, '\", \"') . '\"';"
				values: [
					"zlib_get_coding_type", "zip_read", "zip_open", "zip_entry_read", "zip_entry_open", "zip_entry_name", "zip_entry_filesize", "zip_entry_compressionmethod", "zip_entry_compressedsize", "zip_entry_close", "zip_close", "zend_version", "zend_logo_guid", "xmlwriter_write_raw", "xmlwriter_write_pi", "xmlwriter_write_element_ns", "xmlwriter_write_element", "xmlwriter_write_dtd_entity", "xmlwriter_write_dtd_element", "xmlwriter_write_dtd_attlist", "xmlwriter_write_dtd", "xmlwriter_write_comment", "xmlwriter_write_cdata", "xmlwriter_write_attribute_ns", "xmlwriter_write_attribute", "xmlwriter_text", "xmlwriter_start_pi", "xmlwriter_start_element_ns", "xmlwriter_start_element", "xmlwriter_start_dtd_entity", "xmlwriter_start_dtd_element", "xmlwriter_start_dtd_attlist", "xmlwriter_start_dtd", "xmlwriter_start_document", "xmlwriter_start_comment", "xmlwriter_start_cdata", "xmlwriter_start_attribute_ns", "xmlwriter_start_attribute", "xmlwriter_set_indent_string", "xmlwriter_set_indent", "xmlwriter_output_memory", "xmlwriter_open_uri", "xmlwriter_open_memory", "xmlwriter_full_end_element", "xmlwriter_flush", "xmlwriter_end_pi", "xmlwriter_end_element", "xmlwriter_end_dtd_entity", "xmlwriter_end_dtd_element", "xmlwriter_end_dtd_attlist", "xmlwriter_end_dtd", "xmlwriter_end_document", "xmlwriter_end_comment", "xmlwriter_end_cdata", "xmlwriter_end_attribute", "xmlrpc_set_type", "xmlrpc_server_register_method", "xmlrpc_server_register_introspection_callback", "xmlrpc_server_destroy", "xmlrpc_server_create", "xmlrpc_server_call_method", "xmlrpc_server_add_introspection_data", "xmlrpc_parse_method_descriptions", "xmlrpc_is_fault", "xmlrpc_get_type", "xmlrpc_encode_request", "xmlrpc_encode", "xmlrpc_decode_request", "xmlrpc_decode", "xml_set_unparsed_entity_decl_handler", "xml_set_start_namespace_decl_handler", "xml_set_processing_instruction_handler", "xml_set_object", "xml_set_notation_decl_handler", "xml_set_external_entity_ref_handler", "xml_set_end_namespace_decl_handler", "xml_set_element_handler", "xml_set_default_handler", "xml_set_character_data_handler", "xml_parser_set_option", "xml_parser_get_option", "xml_parser_free", "xml_parser_create_ns", "xml_parser_create", "xml_parse_into_struct", "xml_parse", "xml_get_error_code", "xml_get_current_line_number", "xml_get_current_column_number", "xml_get_current_byte_index", "xml_error_string", "wordwrap", "wddx_serialize_vars", "wddx_serialize_value", "wddx_packet_start", "wddx_packet_end", "wddx_deserialize", "wddx_add_vars", "vsprintf", "vprintf", "vfprintf", "version_compare", "variant_xor", "variant_sub", "variant_set_type", "variant_set", "variant_round", "variant_pow", "variant_or", "variant_not", "variant_neg", "variant_mul", "variant_mod", "variant_int", "variant_imp", "variant_idiv", "variant_get_type", "variant_fix", "variant_eqv", "variant_div", "variant_date_to_timestamp", "variant_date_from_timestamp", "variant_cmp", "variant_cat", "variant_cast", "variant_and", "variant_add", "variant_abs", "var_export", "var_dump", "utf8_encode", "utf8_decode", "usort", "usleep", "user_error", "use_soap_error_handler", "urlencode", "urldecode", "unserialize", "unregister_tick_function", "unpack", "unlink", "unixtojd", "uniqid", "umask", "uksort", "ucwords", "ucfirst", "uasort", "trim", "trigger_error", "touch", "token_name", "token_get_all", "tmpfile", "timezone_version_get", "timezone_transitions_get", "timezone_open", "timezone_offset_get", "timezone_name_get", "timezone_name_from_abbr", "timezone_location_get", "timezone_identifiers_list", "timezone_abbreviations_list", "time_sleep_until", "time_nanosleep", "time", "tidy_warning_count", "tidy_repair_string", "tidy_repair_file", "tidy_parse_string", "tidy_parse_file", "tidy_is_xml", "tidy_is_xhtml", "tidy_getopt", "tidy_get_status", "tidy_get_root", "tidy_get_release", "tidy_get_output", "tidy_get_html_ver", "tidy_get_html", "tidy_get_head", "tidy_get_error_buffer", "tidy_get_config", "tidy_get_body", "tidy_error_count", "tidy_diagnose", "tidy_config_count", "tidy_clean_repair", "tidy_access_count", "textdomain", "tempnam", "tanh", "tan", "system", "syslog", "sys_get_temp_dir", "symlink", "substr_replace", "substr_count", "substr_compare", "substr", "strval", "strtr", "strtoupper", "strtotime", "strtolower", "strtok", "strstr", "strspn", "strrpos", "strripos", "strrev", "strrchr", "strpos", "strpbrk", "strncmp", "strncasecmp", "strnatcmp", "strnatcasecmp", "strlen", "stristr", "stripslashes", "stripos", "stripcslashes", "strip_tags", "strftime", "stream_wrapper_unregister", "stream_wrapper_restore", "stream_wrapper_register", "stream_supports_lock", "stream_socket_shutdown", "stream_socket_server", "stream_socket_sendto", "stream_socket_recvfrom", "stream_socket_pair", "stream_socket_get_name", "stream_socket_enable_crypto", "stream_socket_client", "stream_socket_accept", "stream_set_write_buffer", "stream_set_timeout", "stream_set_blocking", "stream_select", "stream_resolve_include_path", "stream_register_wrapper", "stream_is_local", "stream_get_wrappers", "stream_get_transports", "stream_get_meta_data", "stream_get_line", "stream_get_filters", "stream_get_contents", "stream_filter_remove", "stream_filter_register", "stream_filter_prepend", "stream_filter_append", "stream_copy_to_stream", "stream_context_set_params", "stream_context_set_option", "stream_context_set_default", "stream_context_get_params", "stream_context_get_options", "stream_context_get_default", "stream_context_create", "stream_bucket_prepend", "stream_bucket_new", "stream_bucket_make_writeable", "stream_bucket_append", "strcspn", "strcoll", "strcmp", "strchr", "strcasecmp", "str_word_count", "str_split", "str_shuffle", "str_rot13", "str_replace", "str_repeat", "str_pad", "str_ireplace", "str_getcsv", "stat", "sscanf", "srand", "sqrt", "sqlite_valid", "sqlite_unbuffered_query", "sqlite_udf_encode_binary", "sqlite_udf_decode_binary", "sqlite_single_query", "sqlite_seek", "sqlite_rewind", "sqlite_query", "sqlite_prev", "sqlite_popen", "sqlite_open", "sqlite_num_rows", "sqlite_num_fields", "sqlite_next", "sqlite_libversion", "sqlite_libencoding", "sqlite_last_insert_rowid", "sqlite_last_error", "sqlite_has_prev", "sqlite_has_more", "sqlite_field_name", "sqlite_fetch_string", "sqlite_fetch_single", "sqlite_fetch_object", "sqlite_fetch_column_types", "sqlite_fetch_array", "sqlite_fetch_all", "sqlite_factory", "sqlite_exec", "sqlite_escape_string", "sqlite_error_string", "sqlite_current", "sqlite_create_function", "sqlite_create_aggregate", "sqlite_column", "sqlite_close", "sqlite_changes", "sqlite_busy_timeout", "sqlite_array_query", "sql_regcase", "sprintf", "spliti", "split", "spl_object_hash", "spl_classes", "spl_autoload_unregister", "spl_autoload_register", "spl_autoload_functions", "spl_autoload_extensions", "spl_autoload_call", "spl_autoload", "soundex", "sort", "socket_write", "socket_strerror", "socket_shutdown", "socket_setopt", "socket_set_timeout", "socket_set_option", "socket_set_nonblock", "socket_set_blocking", "socket_set_block", "socket_sendto", "socket_send", "socket_select", "socket_recvfrom", "socket_recv", "socket_read", "socket_listen", "socket_last_error", "socket_getsockname", "socket_getpeername", "socket_getopt", "socket_get_status", "socket_get_option", "socket_create_pair", "socket_create_listen", "socket_create", "socket_connect", "socket_close", "socket_clear_error", "socket_bind", "socket_accept", "sleep", "sizeof", "sinh", "sin", "simplexml_load_string", "simplexml_load_file", "simplexml_import_dom", "similar_text", "shuffle", "show_source", "shmop_write", "shmop_size", "shmop_read", "shmop_open", "shmop_delete", "shmop_close", "shell_exec", "sha1_file", "sha1", "settype", "setrawcookie", "setlocale", "setcookie", "set_time_limit", "set_socket_blocking", "set_magic_quotes_runtime", "set_include_path", "set_file_buffer", "set_exception_handler", "set_error_handler", "session_write_close", "session_unset", "session_unregister", "session_start", "session_set_save_handler", "session_set_cookie_params", "session_save_path", "session_register", "session_regenerate_id", "session_name", "session_module_name", "session_is_registered", "session_id", "session_get_cookie_params", "session_encode", "session_destroy", "session_decode", "session_commit", "session_cache_limiter", "session_cache_expire", "serialize", "scandir", "rtrim", "rsort", "round", "rmdir", "rewinddir", "rewind", "restore_include_path", "restore_exception_handler", "restore_error_handler", "reset", "rename", "register_tick_function", "register_shutdown_function", "realpath_cache_size", "realpath_cache_get", "realpath", "readlink", "readgzfile", "readfile", "readdir", "read_exif_data", "rawurlencode", "rawurldecode", "range", "rand", "rad2deg", "quotemeta", "quoted_printable_encode", "quoted_printable_decode", "putenv", "property_exists", "proc_terminate", "proc_open", "proc_get_status", "proc_close", "printf", "print_r", "prev", "preg_split", "preg_replace_callback", "preg_replace", "preg_quote", "preg_match_all", "preg_match", "preg_last_error", "preg_grep", "preg_filter", "pow", "pos", "popen", "pi", "phpversion", "phpinfo", "phpcredits", "php_uname", "php_strip_whitespace", "php_sapi_name", "php_real_logo_guid", "php_logo_guid", "php_ini_scanned_files", "php_ini_loaded_file", "php_egg_logo_guid", "pg_version", "pg_update", "pg_untrace", "pg_unescape_bytea", "pg_tty", "pg_transaction_status", "pg_trace", "pg_setclientencoding", "pg_set_error_verbosity", "pg_set_client_encoding", "pg_send_query_params", "pg_send_query", "pg_send_prepare", "pg_send_execute", "pg_select", "pg_result_status", "pg_result_seek", "pg_result_error_field", "pg_result_error", "pg_result", "pg_query_params", "pg_query", "pg_put_line", "pg_prepare", "pg_port", "pg_ping", "pg_pconnect", "pg_parameter_status", "pg_options", "pg_numrows", "pg_numfields", "pg_num_rows", "pg_num_fields", "pg_meta_data", "pg_lowrite", "pg_lounlink", "pg_loreadall", "pg_loread", "pg_loopen", "pg_loimport", "pg_loexport", "pg_locreate", "pg_loclose", "pg_lo_write", "pg_lo_unlink", "pg_lo_tell", "pg_lo_seek", "pg_lo_read_all", "pg_lo_read", "pg_lo_open", "pg_lo_import", "pg_lo_export", "pg_lo_create", "pg_lo_close", "pg_last_oid", "pg_last_notice", "pg_last_error", "pg_insert", "pg_host", "pg_getlastoid", "pg_get_result", "pg_get_pid", "pg_get_notify", "pg_freeresult", "pg_free_result", "pg_fieldtype", "pg_fieldsize", "pg_fieldprtlen", "pg_fieldnum", "pg_fieldname", "pg_fieldisnull", "pg_field_type_oid", "pg_field_type", "pg_field_table", "pg_field_size", "pg_field_prtlen", "pg_field_num", "pg_field_name", "pg_field_is_null", "pg_fetch_row", "pg_fetch_result", "pg_fetch_object", "pg_fetch_assoc", "pg_fetch_array", "pg_fetch_all_columns", "pg_fetch_all", "pg_execute", "pg_exec", "pg_escape_string", "pg_escape_bytea", "pg_errormessage", "pg_end_copy", "pg_delete", "pg_dbname", "pg_copy_to", "pg_copy_from", "pg_convert", "pg_connection_status", "pg_connection_reset", "pg_connection_busy", "pg_connect", "pg_cmdtuples", "pg_close", "pg_clientencoding", "pg_client_encoding", "pg_cancel_query", "pg_affected_rows", "pfsockopen", "pdo_drivers", "pclose", "pathinfo", "passthru", "parse_url", "parse_str", "parse_ini_string", "parse_ini_file", "pack", "output_reset_rewrite_vars", "output_add_rewrite_var", "ord", "openssl_x509_read", "openssl_x509_parse", "openssl_x509_free", "openssl_x509_export_to_file", "openssl_x509_export", "openssl_x509_checkpurpose", "openssl_x509_check_private_key", "openssl_verify", "openssl_sign", "openssl_seal", "openssl_random_pseudo_bytes", "openssl_public_encrypt", "openssl_public_decrypt", "openssl_private_encrypt", "openssl_private_decrypt", "openssl_pkey_new", "openssl_pkey_get_public", "openssl_pkey_get_private", "openssl_pkey_get_details", "openssl_pkey_free", "openssl_pkey_export_to_file", "openssl_pkey_export", "openssl_pkcs7_verify", "openssl_pkcs7_sign", "openssl_pkcs7_encrypt", "openssl_pkcs7_decrypt", "openssl_pkcs12_read", "openssl_pkcs12_export_to_file", "openssl_pkcs12_export", "openssl_open", "openssl_get_publickey", "openssl_get_privatekey", "openssl_get_md_methods", "openssl_get_cipher_methods", "openssl_free_key", "openssl_error_string", "openssl_encrypt", "openssl_digest", "openssl_dh_compute_key", "openssl_decrypt", "openssl_csr_sign", "openssl_csr_new", "openssl_csr_get_subject", "openssl_csr_get_public_key", "openssl_csr_export_to_file", "openssl_csr_export", "openlog", "opendir", "odbc_tables", "odbc_tableprivileges", "odbc_statistics", "odbc_specialcolumns", "odbc_setoption", "odbc_rollback", "odbc_result_all", "odbc_result", "odbc_procedures", "odbc_procedurecolumns", "odbc_primarykeys", "odbc_prepare", "odbc_pconnect", "odbc_num_rows", "odbc_num_fields", "odbc_next_result", "odbc_longreadlen", "odbc_gettypeinfo", "odbc_free_result", "odbc_foreignkeys", "odbc_field_type", "odbc_field_scale", "odbc_field_precision", "odbc_field_num", "odbc_field_name", "odbc_field_len", "odbc_fetch_row", "odbc_fetch_object", "odbc_fetch_into", "odbc_fetch_array", "odbc_execute", "odbc_exec", "odbc_errormsg", "odbc_error", "odbc_do", "odbc_data_source", "odbc_cursor", "odbc_connect", "odbc_commit", "odbc_columns", "odbc_columnprivileges", "odbc_close_all", "odbc_close", "odbc_binmode", "odbc_autocommit", "octdec", "ob_tidyhandler", "ob_start", "ob_list_handlers", "ob_inflatehandler", "ob_implicit_flush", "ob_iconv_handler", "ob_gzhandler", "ob_get_status", "ob_get_level", "ob_get_length", "ob_get_flush", "ob_get_contents", "ob_get_clean", "ob_flush", "ob_etaghandler", "ob_end_flush", "ob_end_clean", "ob_deflatehandler", "ob_clean", "number_format", "nl2br", "ngettext", "next", "natsort", "natcasesort", "mysqli_warning_count", "mysqli_use_result", "mysqli_thread_safe", "mysqli_thread_id", "mysqli_store_result", "mysqli_stmt_store_result", "mysqli_stmt_sqlstate", "mysqli_stmt_send_long_data", "mysqli_stmt_result_metadata", "mysqli_stmt_reset", "mysqli_stmt_prepare", "mysqli_stmt_param_count", "mysqli_stmt_num_rows", "mysqli_stmt_next_result", "mysqli_stmt_more_results", "mysqli_stmt_insert_id", "mysqli_stmt_init", "mysqli_stmt_get_warnings", "mysqli_stmt_get_result", "mysqli_stmt_free_result", "mysqli_stmt_field_count", "mysqli_stmt_fetch", "mysqli_stmt_execute", "mysqli_stmt_error", "mysqli_stmt_errno", "mysqli_stmt_data_seek", "mysqli_stmt_close", "mysqli_stmt_bind_result", "mysqli_stmt_bind_param", "mysqli_stmt_attr_set", "mysqli_stmt_attr_get", "mysqli_stmt_affected_rows", "mysqli_stat", "mysqli_sqlstate", "mysqli_set_opt", "mysqli_set_charset", "mysqli_send_long_data", "mysqli_select_db", "mysqli_rollback", "mysqli_report", "mysqli_refresh", "mysqli_reap_async_query", "mysqli_real_query", "mysqli_real_escape_string", "mysqli_real_connect", "mysqli_query", "mysqli_prepare", "mysqli_poll", "mysqli_ping", "mysqli_param_count", "mysqli_options", "mysqli_num_rows", "mysqli_num_fields", "mysqli_next_result", "mysqli_multi_query", "mysqli_more_results", "mysqli_kill", "mysqli_insert_id", "mysqli_init", "mysqli_info", "mysqli_get_warnings", "mysqli_get_server_version", "mysqli_get_server_info", "mysqli_get_proto_info", "mysqli_get_metadata", "mysqli_get_host_info", "mysqli_get_connection_stats", "mysqli_get_client_version", "mysqli_get_client_stats", "mysqli_get_client_info", "mysqli_get_charset", "mysqli_get_cache_stats", "mysqli_free_result", "mysqli_field_tell", "mysqli_field_seek", "mysqli_field_count", "mysqli_fetch_row", "mysqli_fetch_object", "mysqli_fetch_lengths", "mysqli_fetch_fields", "mysqli_fetch_field_direct", "mysqli_fetch_field", "mysqli_fetch_assoc", "mysqli_fetch_array", "mysqli_fetch_all", "mysqli_fetch", "mysqli_execute", "mysqli_escape_string", "mysqli_error", "mysqli_errno", "mysqli_dump_debug_info", "mysqli_debug", "mysqli_data_seek", "mysqli_connect_error", "mysqli_connect_errno", "mysqli_connect", "mysqli_commit", "mysqli_close", "mysqli_client_encoding", "mysqli_character_set_name", "mysqli_change_user", "mysqli_bind_result", "mysqli_bind_param", "mysqli_autocommit", "mysqli_affected_rows", "mysql_unbuffered_query", "mysql_thread_id", "mysql_tablename", "mysql_table_name", "mysql_stat", "mysql_set_charset", "mysql_selectdb", "mysql_select_db", "mysql_result", "mysql_real_escape_string", "mysql_query", "mysql_ping", "mysql_pconnect", "mysql_numrows", "mysql_numfields", "mysql_num_rows", "mysql_num_fields", "mysql_listtables", "mysql_listfields", "mysql_listdbs", "mysql_list_tables", "mysql_list_processes", "mysql_list_fields", "mysql_list_dbs", "mysql_insert_id", "mysql_info", "mysql_get_server_info", "mysql_get_proto_info", "mysql_get_host_info", "mysql_get_client_info", "mysql_freeresult", "mysql_free_result", "mysql_fieldtype", "mysql_fieldtable", "mysql_fieldname", "mysql_fieldlen", "mysql_fieldflags", "mysql_field_type", "mysql_field_table", "mysql_field_seek", "mysql_field_name", "mysql_field_len", "mysql_field_flags", "mysql_fetch_row", "mysql_fetch_object", "mysql_fetch_lengths", "mysql_fetch_field", "mysql_fetch_assoc", "mysql_fetch_array", "mysql_escape_string", "mysql_error", "mysql_errno", "mysql_dbname", "mysql_db_query", "mysql_db_name", "mysql_data_seek", "mysql_connect", "mysql_close", "mysql_client_encoding", "mysql_affected_rows", "mysql", "mt_srand", "mt_rand", "mt_getrandmax", "move_uploaded_file", "mktime", "mkdir", "min", "microtime", "method_exists", "metaphone", "memory_get_usage", "memory_get_peak_usage", "mdecrypt_generic", "md5_file", "md5", "mcrypt_ofb", "mcrypt_module_self_test", "mcrypt_module_open", "mcrypt_module_is_block_mode", "mcrypt_module_is_block_algorithm_mode", "mcrypt_module_is_block_algorithm", "mcrypt_module_get_supported_key_sizes", "mcrypt_module_get_algo_key_size", "mcrypt_module_get_algo_block_size", "mcrypt_module_close", "mcrypt_list_modes", "mcrypt_list_algorithms", "mcrypt_get_key_size", "mcrypt_get_iv_size", "mcrypt_get_cipher_name", "mcrypt_get_block_size", "mcrypt_generic_init", "mcrypt_generic_end", "mcrypt_generic_deinit", "mcrypt_generic", "mcrypt_encrypt", "mcrypt_enc_self_test", "mcrypt_enc_is_block_mode", "mcrypt_enc_is_block_algorithm_mode", "mcrypt_enc_is_block_algorithm", "mcrypt_enc_get_supported_key_sizes", "mcrypt_enc_get_modes_name", "mcrypt_enc_get_key_size", "mcrypt_enc_get_iv_size", "mcrypt_enc_get_block_size", "mcrypt_enc_get_algorithms_name", "mcrypt_ecb", "mcrypt_decrypt", "mcrypt_create_iv", "mcrypt_cfb", "mcrypt_cbc", "mbsplit", "mbregex_encoding", "mberegi_replace", "mberegi", "mbereg_search_setpos", "mbereg_search_regs", "mbereg_search_pos", "mbereg_search_init", "mbereg_search_getregs", "mbereg_search_getpos", "mbereg_search", "mbereg_replace", "mbereg_match", "mbereg", "mb_substr_count", "mb_substr", "mb_substitute_character", "mb_strwidth", "mb_strtoupper", "mb_strtolower", "mb_strstr", "mb_strrpos", "mb_strripos", "mb_strrichr", "mb_strrchr", "mb_strpos", "mb_strlen", "mb_stristr", "mb_stripos", "mb_strimwidth", "mb_strcut", "mb_split", "mb_send_mail", "mb_regex_set_options", "mb_regex_encoding", "mb_preferred_mime_name", "mb_parse_str", "mb_output_handler", "mb_list_encodings", "mb_language", "mb_internal_encoding", "mb_http_output", "mb_http_input", "mb_get_info", "mb_eregi_replace", "mb_eregi", "mb_ereg_search_setpos", "mb_ereg_search_regs", "mb_ereg_search_pos", "mb_ereg_search_init", "mb_ereg_search_getregs", "mb_ereg_search_getpos", "mb_ereg_search", "mb_ereg_replace", "mb_ereg_match", "mb_ereg", "mb_encoding_aliases", "mb_encode_numericentity", "mb_encode_mimeheader", "mb_detect_order", "mb_detect_encoding", "mb_decode_numericentity", "mb_decode_mimeheader", "mb_convert_variables", "mb_convert_kana", "mb_convert_encoding", "mb_convert_case", "mb_check_encoding", "max", "mail", "magic_quotes_runtime", "ltrim", "lstat", "long2ip", "log1p", "log10", "log", "localtime", "localeconv", "linkinfo", "link", "libxml_use_internal_errors", "libxml_set_streams_context", "libxml_get_last_error", "libxml_get_errors", "libxml_disable_entity_loader", "libxml_clear_errors", "levenshtein", "ldap_unbind", "ldap_start_tls", "ldap_sort", "ldap_set_option", "ldap_search", "ldap_rename", "ldap_read", "ldap_parse_result", "ldap_parse_reference", "ldap_next_reference", "ldap_next_entry", "ldap_next_attribute", "ldap_modify", "ldap_mod_replace", "ldap_mod_del", "ldap_mod_add", "ldap_list", "ldap_get_values_len", "ldap_get_values", "ldap_get_option", "ldap_get_entries", "ldap_get_dn", "ldap_get_attributes", "ldap_free_result", "ldap_first_reference", "ldap_first_entry", "ldap_first_attribute", "ldap_explode_dn", "ldap_error", "ldap_errno", "ldap_err2str", "ldap_dn2ufn", "ldap_delete", "ldap_count_entries", "ldap_connect", "ldap_compare", "ldap_close", "ldap_bind", "ldap_add", "lcg_value", "lcfirst", "ksort", "krsort", "key_exists", "key", "juliantojd", "json_last_error", "json_encode", "json_decode", "join", "jewishtojd", "jdtounix", "jdtojulian", "jdtojewish", "jdtogregorian", "jdtofrench", "jdmonthname", "jddayofweek", "iterator_to_array", "iterator_count", "iterator_apply", "is_writeable", "is_writable", "is_uploaded_file", "is_subclass_of", "is_string", "is_soap_fault", "is_scalar", "is_resource", "is_real", "is_readable", "is_object", "is_numeric", "is_null", "is_nan", "is_long", "is_link", "is_integer", "is_int", "is_infinite", "is_float", "is_finite", "is_file", "is_executable", "is_double", "is_dir", "is_callable", "is_bool", "is_array", "is_a", "iptcparse", "iptcembed", "ip2long", "intval", "interface_exists", "ini_set", "ini_restore", "ini_get_all", "ini_get", "ini_alter", "inet_pton", "inet_ntop", "in_array", "import_request_variables", "implode", "image_type_to_mime_type", "image_type_to_extension", "ignore_user_abort", "idate", "iconv_substr", "iconv_strrpos", "iconv_strpos", "iconv_strlen", "iconv_set_encoding", "iconv_mime_encode", "iconv_mime_decode_headers", "iconv_mime_decode", "iconv_get_encoding", "iconv", "hypot", "http_throttle", "http_support", "http_send_stream", "http_send_status", "http_send_last_modified", "http_send_file", "http_send_data", "http_send_content_type", "http_send_content_disposition", "http_request_method_unregister", "http_request_method_register", "http_request_method_name", "http_request_method_exists", "http_request_body_encode", "http_request", "http_redirect", "http_put_stream", "http_put_file", "http_put_data", "http_post_fields", "http_post_data", "http_persistent_handles_ident", "http_persistent_handles_count", "http_persistent_handles_clean", "http_parse_params", "http_parse_message", "http_parse_headers", "http_parse_cookie", "http_negotiate_language", "http_negotiate_content_type", "http_negotiate_charset", "http_match_request_header", "http_match_modified", "http_match_etag", "http_inflate", "http_head", "http_get_request_headers", "http_get_request_body_stream", "http_get_request_body", "http_get", "http_deflate", "http_date", "http_chunked_decode", "http_cache_last_modified", "http_cache_etag", "http_build_url", "http_build_str", "http_build_query", "http_build_cookie", "htmlspecialchars_decode", "htmlspecialchars", "htmlentities", "html_entity_decode", "highlight_string", "highlight_file", "hexdec", "hebrevc", "hebrev", "headers_sent", "headers_list", "header_remove", "header", "hash_update_stream", "hash_update_file", "hash_update", "hash_init", "hash_hmac_file", "hash_hmac", "hash_final", "hash_file", "hash_copy", "hash_algos", "hash", "gzwrite", "gzuncompress", "gztell", "gzseek", "gzrewind", "gzread", "gzputs", "gzpassthru", "gzopen", "gzinflate", "gzgetss", "gzgets", "gzgetc", "gzfile", "gzeof", "gzencode", "gzdeflate", "gzcompress", "gzclose", "gregoriantojd", "gmstrftime", "gmmktime", "gmdate", "glob", "gettype", "gettimeofday", "gettext", "getservbyport", "getservbyname", "getrandmax", "getprotobynumber", "getprotobyname", "getopt", "getmyuid", "getmypid", "getmyinode", "getmygid", "getmxrr", "getlastmod", "getimagesize", "gethostname", "gethostbynamel", "gethostbyname", "gethostbyaddr", "getenv", "getdate", "getcwd", "get_resource_type", "get_required_files", "get_parent_class", "get_object_vars", "get_meta_tags", "get_magic_quotes_runtime", "get_magic_quotes_gpc", "get_loaded_extensions", "get_included_files", "get_include_path", "get_html_translation_table", "get_headers", "get_extension_funcs", "get_defined_vars", "get_defined_functions", "get_defined_constants", "get_declared_interfaces", "get_declared_classes", "get_current_user", "get_class_vars", "get_class_methods", "get_class", "get_cfg_var", "get_called_class", "get_browser", "gc_enabled", "gc_enable", "gc_disable", "gc_collect_cycles", "fwrite", "function_exists", "func_num_args", "func_get_args", "func_get_arg", "ftruncate", "ftp_systype", "ftp_ssl_connect", "ftp_size", "ftp_site", "ftp_set_option", "ftp_rmdir", "ftp_rename", "ftp_rawlist", "ftp_raw", "ftp_quit", "ftp_pwd", "ftp_put", "ftp_pasv", "ftp_nlist", "ftp_nb_put", "ftp_nb_get", "ftp_nb_fput", "ftp_nb_fget", "ftp_nb_continue", "ftp_mkdir", "ftp_mdtm", "ftp_login", "ftp_get_option", "ftp_get", "ftp_fput", "ftp_fget", "ftp_exec", "ftp_delete", "ftp_connect", "ftp_close", "ftp_chmod", "ftp_chdir", "ftp_cdup", "ftp_alloc", "ftell", "fstat", "fsockopen", "fseek", "fscanf", "frenchtojd", "fread", "fputs", "fputcsv", "fprintf", "fpassthru", "forward_static_call_array", "forward_static_call", "fopen", "fnmatch", "fmod", "flush", "floor", "flock", "floatval", "filter_var_array", "filter_var", "filter_list", "filter_input_array", "filter_input", "filter_id", "filter_has_var", "filetype", "filesize", "fileperms", "fileowner", "filemtime", "fileinode", "filegroup", "filectime", "fileatime", "file_put_contents", "file_get_contents", "file_exists", "file", "fgetss", "fgets", "fgetcsv", "fgetc", "fflush", "feof", "fclose", "ezmlm_hash", "extract", "extension_loaded", "expm1", "explode", "exp", "exif_thumbnail", "exif_tagname", "exif_read_data", "exif_imagetype", "exec", "escapeshellcmd", "escapeshellarg", "error_reporting", "error_log", "error_get_last", "eregi_replace", "eregi", "ereg_replace", "ereg", "end", "easter_days", "easter_date", "each", "doubleval", "dom_import_simplexml", "dns_get_record", "dns_get_mx", "dns_check_record", "dngettext", "dl", "diskfreespace", "disk_total_space", "disk_free_space", "dirname", "dir", "dgettext", "deg2rad", "defined", "define_syslog_variables", "define", "decoct", "dechex", "decbin", "debug_zval_dump", "debug_print_backtrace", "debug_backtrace", "dcngettext", "dcgettext", "date_timezone_set", "date_timezone_get", "date_timestamp_set", "date_timestamp_get", "date_time_set", "date_sunset", "date_sunrise", "date_sun_info", "date_sub", "date_parse_from_format", "date_parse", "date_offset_get", "date_modify", "date_isodate_set", "date_interval_format", "date_interval_create_from_date_string", "date_get_last_errors", "date_format", "date_diff", "date_default_timezone_set", "date_default_timezone_get", "date_date_set", "date_create_from_format", "date_create", "date_add", "date", "current", "ctype_xdigit", "ctype_upper", "ctype_space", "ctype_punct", "ctype_print", "ctype_lower", "ctype_graph", "ctype_digit", "ctype_cntrl", "ctype_alpha", "ctype_alnum", "crypt", "create_function", "crc32", "count_chars", "count", "cosh", "cos", "copy", "convert_uuencode", "convert_uudecode", "convert_cyr_string", "constant", "connection_status", "connection_aborted", "compact", "com_print_typeinfo", "com_message_pump", "com_load_typelib", "com_get_active_object", "com_event_sink", "com_create_guid", "closelog", "closedir", "clearstatcache", "class_parents", "class_implements", "class_exists", "class_alias", "chunk_split", "chr", "chown", "chop", "chmod", "chgrp", "checkdnsrr", "checkdate", "chdir", "ceil", "call_user_method_array", "call_user_method", "call_user_func_array", "call_user_func", "cal_to_jd", "cal_info", "cal_from_jd", "cal_days_in_month", "bindtextdomain", "bindec", "bind_textdomain_codeset", "bin2hex", "bcsub", "bcsqrt", "bcscale", "bcpowmod", "bcpow", "bcmul", "bcmod", "bcdiv", "bccomp", "bcadd", "basename", "base_convert", "base64_encode", "base64_decode", "atanh", "atan2", "atan", "assert_options", "assert", "asort", "asinh", "asin", "arsort", "array_walk_recursive", "array_walk", "array_values", "array_unshift", "array_unique", "array_uintersect_uassoc", "array_uintersect_assoc", "array_uintersect", "array_udiff_uassoc", "array_udiff_assoc", "array_udiff", "array_sum", "array_splice", "array_slice", "array_shift", "array_search", "array_reverse", "array_replace_recursive", "array_replace", "array_reduce", "array_rand", "array_push", "array_product", "array_pop", "array_pad", "array_multisort", "array_merge_recursive", "array_merge", "array_map", "array_keys", "array_key_exists", "array_intersect_ukey", "array_intersect_uassoc", "array_intersect_key", "array_intersect_assoc", "array_intersect", "array_flip", "array_filter", "array_fill_keys", "array_fill", "array_diff_ukey", "array_diff_uassoc", "array_diff_key", "array_diff_assoc", "array_diff", "array_count_values", "array_combine", "array_chunk", "array_change_key_case", "addslashes", "addcslashes", "acosh", "acos", "abs"
				],
				boundary: "\\b"
			},
			
			languageConstruct: { 
				values: [
					"isset", "array", "unset", "list", "echo", "include_once", "include",
					"require_once", "require", "print", "empty", "return", "die", "eval", "exit"
				],
				
				boundary: "\\b"
			},
			
			constant: {
				values: [
					"__CLASS__", "__DIR__", "__FILE__", "__LINE__", "__FUNCTION__", "__METHOD__", "__NAMESPACE__", 
					
					//php -r "$c = array_keys(get_defined_constants()); arsort($c); echo '\"' . implode($c, '\", \"') . '\"';"
					"ZEND_THREAD_SAFE", "ZEND_DEBUG_BUILD", "XSL_CLONE_NEVER", "XSL_CLONE_AUTO", "XSL_CLONE_ALWAYS", "XSD_UNSIGNEDSHORT", "XSD_UNSIGNEDLONG", "XSD_UNSIGNEDINT", "XSD_UNSIGNEDBYTE", "XSD_TOKEN", "XSD_TIME", "XSD_STRING", "XSD_SHORT", "XSD_QNAME", "XSD_POSITIVEINTEGER", "XSD_NOTATION", "XSD_NORMALIZEDSTRING", "XSD_NONPOSITIVEINTEGER", "XSD_NONNEGATIVEINTEGER", "XSD_NMTOKENS", "XSD_NMTOKEN", "XSD_NEGATIVEINTEGER", "XSD_NCNAME", "XSD_NAMESPACE", "XSD_NAME", "XSD_LONG", "XSD_LANGUAGE", "XSD_INTEGER", "XSD_INT", "XSD_IDREFS", "XSD_IDREF", "XSD_ID", "XSD_HEXBINARY", "XSD_GYEARMONTH", "XSD_GYEAR", "XSD_GMONTHDAY", "XSD_GMONTH", "XSD_GDAY", "XSD_FLOAT", "XSD_ENTITY", "XSD_ENTITIES", "XSD_DURATION", "XSD_DOUBLE", "XSD_DECIMAL", "XSD_DATETIME", "XSD_DATE", "XSD_BYTE", "XSD_BOOLEAN", "XSD_BASE64BINARY", "XSD_ANYXML", "XSD_ANYURI", "XSD_ANYTYPE", "XSD_1999_TIMEINSTANT", "XSD_1999_NAMESPACE", "XML_TEXT_NODE", "XML_SAX_IMPL", "XML_PI_NODE", "XML_OPTION_TARGET_ENCODING", "XML_OPTION_SKIP_WHITE", "XML_OPTION_SKIP_TAGSTART", "XML_OPTION_CASE_FOLDING", "XML_NOTATION_NODE", "XML_NAMESPACE_DECL_NODE", "XML_LOCAL_NAMESPACE", "XML_HTML_DOCUMENT_NODE", "XML_ERROR_UNKNOWN_ENCODING", "XML_ERROR_UNDEFINED_ENTITY", "XML_ERROR_UNCLOSED_TOKEN", "XML_ERROR_UNCLOSED_CDATA_SECTION", "XML_ERROR_TAG_MISMATCH", "XML_ERROR_SYNTAX", "XML_ERROR_RECURSIVE_ENTITY_REF", "XML_ERROR_PARTIAL_CHAR", "XML_ERROR_PARAM_ENTITY_REF", "XML_ERROR_NO_MEMORY", "XML_ERROR_NO_ELEMENTS", "XML_ERROR_NONE", "XML_ERROR_MISPLACED_XML_PI", "XML_ERROR_JUNK_AFTER_DOC_ELEMENT", "XML_ERROR_INVALID_TOKEN", "XML_ERROR_INCORRECT_ENCODING", "XML_ERROR_EXTERNAL_ENTITY_HANDLING", "XML_ERROR_DUPLICATE_ATTRIBUTE", "XML_ERROR_BINARY_ENTITY_REF", "XML_ERROR_BAD_CHAR_REF", "XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF", "XML_ERROR_ASYNC_ENTITY", "XML_ENTITY_REF_NODE", "XML_ENTITY_NODE", "XML_ENTITY_DECL_NODE", "XML_ELEMENT_NODE", "XML_ELEMENT_DECL_NODE", "XML_DTD_NODE", "XML_DOCUMENT_TYPE_NODE", "XML_DOCUMENT_NODE", "XML_DOCUMENT_FRAG_NODE", "XML_COMMENT_NODE", "XML_CDATA_SECTION_NODE", "XML_ATTRIBUTE_NOTATION", "XML_ATTRIBUTE_NODE", "XML_ATTRIBUTE_NMTOKENS", "XML_ATTRIBUTE_NMTOKEN", "XML_ATTRIBUTE_IDREFS", "XML_ATTRIBUTE_IDREF", "XML_ATTRIBUTE_ID", "XML_ATTRIBUTE_ENUMERATION", "XML_ATTRIBUTE_ENTITY", "XML_ATTRIBUTE_DECL_NODE", "XML_ATTRIBUTE_CDATA", "X509_PURPOSE_SSL_SERVER", "X509_PURPOSE_SSL_CLIENT", "X509_PURPOSE_SMIME_SIGN", "X509_PURPOSE_SMIME_ENCRYPT", "X509_PURPOSE_NS_SSL_SERVER", "X509_PURPOSE_CRL_SIGN", "X509_PURPOSE_ANY", "WSDL_CACHE_NONE", "WSDL_CACHE_MEMORY", "WSDL_CACHE_DISK", "WSDL_CACHE_BOTH", "VT_VARIANT", "VT_UNKNOWN", "VT_UINT", "VT_UI4", "VT_UI2", "VT_UI1", "VT_R8", "VT_R4", "VT_NULL", "VT_INT", "VT_I4", "VT_I2", "VT_I1", "VT_ERROR", "VT_EMPTY", "VT_DISPATCH", "VT_DECIMAL", "VT_DATE", "VT_CY", "VT_BYREF", "VT_BSTR", "VT_BOOL", "VT_ARRAY", "VARCMP_NULL", "VARCMP_LT", "VARCMP_GT", "VARCMP_EQ", "UPLOAD_ERR_PARTIAL", "UPLOAD_ERR_OK", "UPLOAD_ERR_NO_TMP_DIR", "UPLOAD_ERR_NO_FILE", "UPLOAD_ERR_INI_SIZE", "UPLOAD_ERR_FORM_SIZE", "UPLOAD_ERR_EXTENSION", "UPLOAD_ERR_CANT_WRITE", "UNKNOWN_TYPE", "T_XOR_EQUAL", "T_WHITESPACE", "T_WHILE", "T_VARIABLE", "T_VAR", "T_USE", "T_UNSET_CAST", "T_UNSET", "T_TRY", "T_THROW", "T_SWITCH", "T_STRING_VARNAME", "T_STRING_CAST", "T_STRING", "T_STATIC", "T_START_HEREDOC", "T_SR_EQUAL", "T_SR", "T_SL_EQUAL", "T_SL", "T_RETURN", "T_REQUIRE_ONCE", "T_REQUIRE", "T_PUBLIC", "T_PROTECTED", "T_PRIVATE", "T_PRINT", "T_PLUS_EQUAL", "T_PAAMAYIM_NEKUDOTAYIM", "T_OR_EQUAL", "T_OPEN_TAG_WITH_ECHO", "T_OPEN_TAG", "T_OBJECT_OPERATOR", "T_OBJECT_CAST", "T_NUM_STRING", "T_NS_SEPARATOR", "T_NS_C", "T_NEW", "T_NAMESPACE", "T_MUL_EQUAL", "T_MOD_EQUAL", "T_MINUS_EQUAL", "T_METHOD_C", "T_LOGICAL_XOR", "T_LOGICAL_OR", "T_LOGICAL_AND", "T_LNUMBER", "T_LIST", "T_LINE", "T_IS_SMALLER_OR_EQUAL", "T_IS_NOT_IDENTICAL", "T_IS_NOT_EQUAL", "T_IS_IDENTICAL", "T_IS_GREATER_OR_EQUAL", "T_IS_EQUAL", "T_ISSET", "T_INT_CAST", "T_INTERFACE", "T_INSTANCEOF", "T_INLINE_HTML", "T_INCLUDE_ONCE", "T_INCLUDE", "T_INC", "T_IMPLEMENTS", "T_IF", "T_HALT_COMPILER", "T_GOTO", "T_GLOBAL", "T_FUNC_C", "T_FUNCTION", "T_FOREACH", "T_FOR", "T_FINAL", "T_FILE", "T_EXTENDS", "T_EXIT", "T_EVAL", "T_END_HEREDOC", "T_ENDWHILE", "T_ENDSWITCH", "T_ENDIF", "T_ENDFOREACH", "T_ENDFOR", "T_ENDDECLARE", "T_ENCAPSED_AND_WHITESPACE", "T_EMPTY", "T_ELSEIF", "T_ELSE", "T_ECHO", "T_DOUBLE_COLON", "T_DOUBLE_CAST", "T_DOUBLE_ARROW", "T_DOLLAR_OPEN_CURLY_BRACES", "T_DOC_COMMENT", "T_DO", "T_DNUMBER", "T_DIV_EQUAL", "T_DIR", "T_DEFAULT", "T_DECLARE", "T_DEC", "T_CURLY_OPEN", "T_CONTINUE", "T_CONSTANT_ENCAPSED_STRING", "T_CONST", "T_CONCAT_EQUAL", "T_COMMENT", "T_CLOSE_TAG", "T_CLONE", "T_CLASS_C", "T_CLASS", "T_CHARACTER", "T_CATCH", "T_CASE", "T_BREAK", "T_BOOL_CAST", "T_BOOLEAN_OR", "T_BOOLEAN_AND", "T_BAD_CHARACTER", "T_AS", "T_ARRAY_CAST", "T_ARRAY", "T_AND_EQUAL", "T_ABSTRACT", "TRUE", "TIDY_TAG_XMP", "TIDY_TAG_WBR", "TIDY_TAG_VAR", "TIDY_TAG_UNKNOWN", "TIDY_TAG_UL", "TIDY_TAG_U", "TIDY_TAG_TT", "TIDY_TAG_TR", "TIDY_TAG_TITLE", "TIDY_TAG_THEAD", "TIDY_TAG_TH", "TIDY_TAG_TFOOT", "TIDY_TAG_TEXTAREA", "TIDY_TAG_TD", "TIDY_TAG_TBODY", "TIDY_TAG_TABLE", "TIDY_TAG_SUP", "TIDY_TAG_SUB", "TIDY_TAG_STYLE", "TIDY_TAG_STRONG", "TIDY_TAG_STRIKE", "TIDY_TAG_SPAN", "TIDY_TAG_SPACER", "TIDY_TAG_SMALL", "TIDY_TAG_SERVLET", "TIDY_TAG_SERVER", "TIDY_TAG_SELECT", "TIDY_TAG_SCRIPT", "TIDY_TAG_SAMP", "TIDY_TAG_S", "TIDY_TAG_RUBY", "TIDY_TAG_RTC", "TIDY_TAG_RT", "TIDY_TAG_RP", "TIDY_TAG_RBC", "TIDY_TAG_RB", "TIDY_TAG_Q", "TIDY_TAG_PRE", "TIDY_TAG_PLAINTEXT", "TIDY_TAG_PARAM", "TIDY_TAG_P", "TIDY_TAG_OPTION", "TIDY_TAG_OPTGROUP", "TIDY_TAG_OL", "TIDY_TAG_OBJECT", "TIDY_TAG_NOSCRIPT", "TIDY_TAG_NOSAVE", "TIDY_TAG_NOLAYER", "TIDY_TAG_NOFRAMES", "TIDY_TAG_NOEMBED", "TIDY_TAG_NOBR", "TIDY_TAG_MULTICOL", "TIDY_TAG_META", "TIDY_TAG_MENU", "TIDY_TAG_MARQUEE", "TIDY_TAG_MAP", "TIDY_TAG_LISTING", "TIDY_TAG_LINK", "TIDY_TAG_LI", "TIDY_TAG_LEGEND", "TIDY_TAG_LAYER", "TIDY_TAG_LABEL", "TIDY_TAG_KEYGEN", "TIDY_TAG_KBD", "TIDY_TAG_ISINDEX", "TIDY_TAG_INS", "TIDY_TAG_INPUT", "TIDY_TAG_IMG", "TIDY_TAG_ILAYER", "TIDY_TAG_IFRAME", "TIDY_TAG_I", "TIDY_TAG_HTML", "TIDY_TAG_HR", "TIDY_TAG_HEAD", "TIDY_TAG_H6", "TIDY_TAG_H5", "TIDY_TAG_H4", "TIDY_TAG_H3", "TIDY_TAG_H2", "TIDY_TAG_H1", "TIDY_TAG_FRAMESET", "TIDY_TAG_FRAME", "TIDY_TAG_FORM", "TIDY_TAG_FONT", "TIDY_TAG_FIELDSET", "TIDY_TAG_EMBED", "TIDY_TAG_EM", "TIDY_TAG_DT", "TIDY_TAG_DL", "TIDY_TAG_DIV", "TIDY_TAG_DIR", "TIDY_TAG_DFN", "TIDY_TAG_DEL", "TIDY_TAG_DD", "TIDY_TAG_COMMENT", "TIDY_TAG_COLGROUP", "TIDY_TAG_COL", "TIDY_TAG_CODE", "TIDY_TAG_CITE", "TIDY_TAG_CENTER", "TIDY_TAG_CAPTION", "TIDY_TAG_BUTTON", "TIDY_TAG_BR", "TIDY_TAG_BODY", "TIDY_TAG_BLOCKQUOTE", "TIDY_TAG_BLINK", "TIDY_TAG_BIG", "TIDY_TAG_BGSOUND", "TIDY_TAG_BDO", "TIDY_TAG_BASEFONT", "TIDY_TAG_BASE", "TIDY_TAG_B", "TIDY_TAG_AREA", "TIDY_TAG_APPLET", "TIDY_TAG_ALIGN", "TIDY_TAG_ADDRESS", "TIDY_TAG_ACRONYM", "TIDY_TAG_ABBR", "TIDY_TAG_A", "TIDY_NODETYPE_XMLDECL", "TIDY_NODETYPE_TEXT", "TIDY_NODETYPE_STARTEND", "TIDY_NODETYPE_START", "TIDY_NODETYPE_SECTION", "TIDY_NODETYPE_ROOT", "TIDY_NODETYPE_PROCINS", "TIDY_NODETYPE_PHP", "TIDY_NODETYPE_JSTE", "TIDY_NODETYPE_END", "TIDY_NODETYPE_DOCTYPE", "TIDY_NODETYPE_COMMENT", "TIDY_NODETYPE_CDATA", "TIDY_NODETYPE_ASP", "TCP_NODELAY", "SUNFUNCS_RET_TIMESTAMP", "SUNFUNCS_RET_STRING", "SUNFUNCS_RET_DOUBLE", "STR_PAD_RIGHT", "STR_PAD_LEFT", "STR_PAD_BOTH", "STREAM_USE_PATH", "STREAM_URL_STAT_QUIET", "STREAM_URL_STAT_LINK", "STREAM_SOCK_STREAM", "STREAM_SOCK_SEQPACKET", "STREAM_SOCK_RDM", "STREAM_SOCK_RAW", "STREAM_SOCK_DGRAM", "STREAM_SHUT_WR", "STREAM_SHUT_RDWR", "STREAM_SHUT_RD", "STREAM_SERVER_LISTEN", "STREAM_SERVER_BIND", "STREAM_REPORT_ERRORS", "STREAM_PF_UNIX", "STREAM_PF_INET6", "STREAM_PF_INET", "STREAM_PEEK", "STREAM_OPTION_WRITE_BUFFER", "STREAM_OPTION_READ_TIMEOUT", "STREAM_OPTION_READ_BUFFER", "STREAM_OPTION_BLOCKING", "STREAM_OOB", "STREAM_NOTIFY_SEVERITY_WARN", "STREAM_NOTIFY_SEVERITY_INFO", "STREAM_NOTIFY_SEVERITY_ERR", "STREAM_NOTIFY_RESOLVE", "STREAM_NOTIFY_REDIRECTED", "STREAM_NOTIFY_PROGRESS", "STREAM_NOTIFY_MIME_TYPE_IS", "STREAM_NOTIFY_FILE_SIZE_IS", "STREAM_NOTIFY_FAILURE", "STREAM_NOTIFY_CONNECT", "STREAM_NOTIFY_COMPLETED", "STREAM_NOTIFY_AUTH_RESULT", "STREAM_NOTIFY_AUTH_REQUIRED", "STREAM_MUST_SEEK", "STREAM_MKDIR_RECURSIVE", "STREAM_IS_URL", "STREAM_IPPROTO_IP", "STREAM_IGNORE_URL", "STREAM_FILTER_WRITE", "STREAM_FILTER_READ", "STREAM_FILTER_ALL", "STREAM_ENFORCE_SAFE_MODE", "STREAM_CRYPTO_METHOD_TLS_SERVER", "STREAM_CRYPTO_METHOD_TLS_CLIENT", "STREAM_CRYPTO_METHOD_SSLv3_SERVER", "STREAM_CRYPTO_METHOD_SSLv3_CLIENT", "STREAM_CRYPTO_METHOD_SSLv2_SERVER", "STREAM_CRYPTO_METHOD_SSLv2_CLIENT", "STREAM_CRYPTO_METHOD_SSLv23_SERVER", "STREAM_CRYPTO_METHOD_SSLv23_CLIENT", "STREAM_CLIENT_PERSISTENT", "STREAM_CLIENT_CONNECT", "STREAM_CLIENT_ASYNC_CONNECT", "STREAM_CAST_FOR_SELECT", "STREAM_CAST_AS_STREAM", "STREAM_BUFFER_NONE", "STREAM_BUFFER_LINE", "STREAM_BUFFER_FULL", "STDOUT", "STDIN", "STDERR", "SQL_VARCHAR", "SQL_VARBINARY", "SQL_TINYINT", "SQL_TIMESTAMP", "SQL_TIME", "SQL_SMALLINT", "SQL_REAL", "SQL_ODBC_CURSORS", "SQL_NUMERIC", "SQL_LONGVARCHAR", "SQL_LONGVARBINARY", "SQL_KEYSET_SIZE", "SQL_INTEGER", "SQL_FLOAT", "SQL_FETCH_NEXT", "SQL_FETCH_FIRST", "SQL_DOUBLE", "SQL_DECIMAL", "SQL_DATE", "SQL_CUR_USE_ODBC", "SQL_CUR_USE_IF_NEEDED", "SQL_CUR_USE_DRIVER", "SQL_CURSOR_TYPE", "SQL_CURSOR_STATIC", "SQL_CURSOR_KEYSET_DRIVEN", "SQL_CURSOR_FORWARD_ONLY", "SQL_CURSOR_DYNAMIC", "SQL_CONCUR_VALUES", "SQL_CONCUR_ROWVER", "SQL_CONCUR_READ_ONLY", "SQL_CONCUR_LOCK", "SQL_CONCURRENCY", "SQL_CHAR", "SQL_BIT", "SQL_BINARY", "SQL_BIGINT", "SQLITE_TOOBIG", "SQLITE_SCHEMA", "SQLITE_ROW", "SQLITE_READONLY", "SQLITE_PROTOCOL", "SQLITE_PERM", "SQLITE_OK", "SQLITE_NUM", "SQLITE_NOTFOUND", "SQLITE_NOTADB", "SQLITE_NOMEM", "SQLITE_NOLFS", "SQLITE_MISUSE", "SQLITE_MISMATCH", "SQLITE_LOCKED", "SQLITE_IOERR", "SQLITE_INTERRUPT", "SQLITE_INTERNAL", "SQLITE_FULL", "SQLITE_FORMAT", "SQLITE_ERROR", "SQLITE_EMPTY", "SQLITE_DONE", "SQLITE_CORRUPT", "SQLITE_CONSTRAINT", "SQLITE_CANTOPEN", "SQLITE_BUSY", "SQLITE_BOTH", "SQLITE_AUTH", "SQLITE_ASSOC", "SQLITE_ABORT", "SQLITE3_TEXT", "SQLITE3_OPEN_READWRITE", "SQLITE3_OPEN_READONLY", "SQLITE3_OPEN_CREATE", "SQLITE3_NUM", "SQLITE3_NULL", "SQLITE3_INTEGER", "SQLITE3_FLOAT", "SQLITE3_BOTH", "SQLITE3_BLOB", "SQLITE3_ASSOC", "SO_TYPE", "SO_SNDTIMEO", "SO_SNDLOWAT", "SO_SNDBUF", "SO_REUSEADDR", "SO_RCVTIMEO", "SO_RCVLOWAT", "SO_RCVBUF", "SO_OOBINLINE", "SO_LINGER", "SO_KEEPALIVE", "SO_ERROR", "SO_DONTROUTE", "SO_DEBUG", "SO_BROADCAST", "SORT_STRING", "SORT_REGULAR", "SORT_NUMERIC", "SORT_LOCALE_STRING", "SORT_DESC", "SORT_ASC", "SOMAXCONN", "SOL_UDP", "SOL_TCP", "SOL_SOCKET", "SOCK_STREAM", "SOCK_SEQPACKET", "SOCK_RDM", "SOCK_RAW", "SOCK_DGRAM", "SOCKET_VERNOTSUPPORTED", "SOCKET_TRY_AGAIN", "SOCKET_SYSNOTREADY", "SOCKET_NO_RECOVERY", "SOCKET_NO_DATA", "SOCKET_NO_ADDRESS", "SOCKET_NOTINITIALISED", "SOCKET_HOST_NOT_FOUND", "SOCKET_EWOULDBLOCK", "SOCKET_EUSERS", "SOCKET_ETOOMANYREFS", "SOCKET_ETIMEDOUT", "SOCKET_ESTALE", "SOCKET_ESOCKTNOSUPPORT", "SOCKET_ESHUTDOWN", "SOCKET_EREMOTE", "SOCKET_EPROTOTYPE", "SOCKET_EPROTONOSUPPORT", "SOCKET_EPROCLIM", "SOCKET_EPFNOSUPPORT", "SOCKET_EOPNOTSUPP", "SOCKET_ENOTSOCK", "SOCKET_ENOTEMPTY", "SOCKET_ENOTCONN", "SOCKET_ENOPROTOOPT", "SOCKET_ENOBUFS", "SOCKET_ENETUNREACH", "SOCKET_ENETRESET", "SOCKET_ENETDOWN", "SOCKET_ENAMETOOLONG", "SOCKET_EMSGSIZE", "SOCKET_EMFILE", "SOCKET_ELOOP", "SOCKET_EISCONN", "SOCKET_EINVAL", "SOCKET_EINTR", "SOCKET_EINPROGRESS", "SOCKET_EHOSTUNREACH", "SOCKET_EHOSTDOWN", "SOCKET_EFAULT", "SOCKET_EDQUOT", "SOCKET_EDISCON", "SOCKET_EDESTADDRREQ", "SOCKET_ECONNRESET", "SOCKET_ECONNREFUSED", "SOCKET_ECONNABORTED", "SOCKET_EBADF", "SOCKET_EALREADY", "SOCKET_EAFNOSUPPORT", "SOCKET_EADDRNOTAVAIL", "SOCKET_EADDRINUSE", "SOCKET_EACCES", "SOAP_WAIT_ONE_WAY_CALLS", "SOAP_USE_XSI_ARRAY_TYPE", "SOAP_SINGLE_ELEMENT_ARRAYS", "SOAP_RPC", "SOAP_PERSISTENCE_SESSION", "SOAP_PERSISTENCE_REQUEST", "SOAP_LITERAL", "SOAP_FUNCTIONS_ALL", "SOAP_ENC_OBJECT", "SOAP_ENC_ARRAY", "SOAP_ENCODED", "SOAP_DOCUMENT", "SOAP_COMPRESSION_GZIP", "SOAP_COMPRESSION_DEFLATE", "SOAP_COMPRESSION_ACCEPT", "SOAP_AUTHENTICATION_DIGEST", "SOAP_AUTHENTICATION_BASIC", "SOAP_ACTOR_UNLIMATERECEIVER", "SOAP_ACTOR_NONE", "SOAP_ACTOR_NEXT", "SOAP_1_2", "SOAP_1_1", "SEEK_SET", "SEEK_END", "SEEK_CUR", "PSFS_PASS_ON", "PSFS_FLAG_NORMAL", "PSFS_FLAG_FLUSH_INC", "PSFS_FLAG_FLUSH_CLOSE", "PSFS_FEED_ME", "PSFS_ERR_FATAL", "PREG_SPLIT_OFFSET_CAPTURE", "PREG_SPLIT_NO_EMPTY", "PREG_SPLIT_DELIM_CAPTURE", "PREG_SET_ORDER", "PREG_RECURSION_LIMIT_ERROR", "PREG_PATTERN_ORDER", "PREG_OFFSET_CAPTURE", "PREG_NO_ERROR", "PREG_INTERNAL_ERROR", "PREG_GREP_INVERT", "PREG_BAD_UTF8_OFFSET_ERROR", "PREG_BAD_UTF8_ERROR", "PREG_BACKTRACK_LIMIT_ERROR", "PKCS7_TEXT", "PKCS7_NOVERIFY", "PKCS7_NOSIGS", "PKCS7_NOINTERN", "PKCS7_NOCHAIN", "PKCS7_NOCERTS", "PKCS7_NOATTR", "PKCS7_DETACHED", "PKCS7_BINARY", "PHP_ZTS", "PHP_WINDOWS_VERSION_SUITEMASK", "PHP_WINDOWS_VERSION_SP_MINOR", "PHP_WINDOWS_VERSION_SP_MAJOR", "PHP_WINDOWS_VERSION_PRODUCTTYPE", "PHP_WINDOWS_VERSION_PLATFORM", "PHP_WINDOWS_VERSION_MINOR", "PHP_WINDOWS_VERSION_MAJOR", "PHP_WINDOWS_VERSION_BUILD", "PHP_WINDOWS_NT_WORKSTATION", "PHP_WINDOWS_NT_SERVER", "PHP_WINDOWS_NT_DOMAIN_CONTROLLER", "PHP_VERSION_ID", "PHP_VERSION", "PHP_URL_USER", "PHP_URL_SCHEME", "PHP_URL_QUERY", "PHP_URL_PORT", "PHP_URL_PATH", "PHP_URL_PASS", "PHP_URL_HOST", "PHP_URL_FRAGMENT", "PHP_SYSCONFDIR", "PHP_SHLIB_SUFFIX", "PHP_SAPI", "PHP_ROUND_HALF_UP", "PHP_ROUND_HALF_ODD", "PHP_ROUND_HALF_EVEN", "PHP_ROUND_HALF_DOWN", "PHP_RELEASE_VERSION", "PHP_PREFIX", "PHP_OUTPUT_HANDLER_START", "PHP_OUTPUT_HANDLER_END", "PHP_OUTPUT_HANDLER_CONT", "PHP_OS", "PHP_NORMAL_READ", "PHP_MINOR_VERSION", "PHP_MAXPATHLEN", "PHP_MAJOR_VERSION", "PHP_LOCALSTATEDIR", "PHP_LIBDIR", "PHP_INT_SIZE", "PHP_INT_MAX", "PHP_EXTRA_VERSION", "PHP_EXTENSION_DIR", "PHP_EOL", "PHP_DEBUG", "PHP_DATADIR", "PHP_CONFIG_FILE_SCAN_DIR", "PHP_CONFIG_FILE_PATH", "PHP_BINDIR", "PHP_BINARY_READ", "PGSQL_TUPLES_OK", "PGSQL_TRANSACTION_UNKNOWN", "PGSQL_TRANSACTION_INTRANS", "PGSQL_TRANSACTION_INERROR", "PGSQL_TRANSACTION_IDLE", "PGSQL_TRANSACTION_ACTIVE", "PGSQL_STATUS_STRING", "PGSQL_STATUS_LONG", "PGSQL_SEEK_SET", "PGSQL_SEEK_END", "PGSQL_SEEK_CUR", "PGSQL_NUM", "PGSQL_NONFATAL_ERROR", "PGSQL_FATAL_ERROR", "PGSQL_ERRORS_VERBOSE", "PGSQL_ERRORS_TERSE", "PGSQL_ERRORS_DEFAULT", "PGSQL_EMPTY_QUERY", "PGSQL_DML_STRING", "PGSQL_DML_NO_CONV", "PGSQL_DML_EXEC", "PGSQL_DML_ASYNC", "PGSQL_DIAG_STATEMENT_POSITION", "PGSQL_DIAG_SQLSTATE", "PGSQL_DIAG_SOURCE_LINE", "PGSQL_DIAG_SOURCE_FUNCTION", "PGSQL_DIAG_SOURCE_FILE", "PGSQL_DIAG_SEVERITY", "PGSQL_DIAG_MESSAGE_PRIMARY", "PGSQL_DIAG_MESSAGE_HINT", "PGSQL_DIAG_MESSAGE_DETAIL", "PGSQL_DIAG_INTERNAL_QUERY", "PGSQL_DIAG_INTERNAL_POSITION", "PGSQL_DIAG_CONTEXT", "PGSQL_COPY_OUT", "PGSQL_COPY_IN", "PGSQL_CONV_IGNORE_NOT_NULL", "PGSQL_CONV_IGNORE_DEFAULT", "PGSQL_CONV_FORCE_NULL", "PGSQL_CONNECT_FORCE_NEW", "PGSQL_CONNECTION_OK", "PGSQL_CONNECTION_BAD", "PGSQL_COMMAND_OK", "PGSQL_BOTH", "PGSQL_BAD_RESPONSE", "PGSQL_ASSOC", "PEAR_INSTALL_DIR", "PEAR_EXTENSION_DIR", "PCRE_VERSION", "PATH_SEPARATOR", "PATHINFO_FILENAME", "PATHINFO_EXTENSION", "PATHINFO_DIRNAME", "PATHINFO_BASENAME", "OPENSSL_VERSION_TEXT", "OPENSSL_VERSION_NUMBER", "OPENSSL_TLSEXT_SERVER_NAME", "OPENSSL_SSLV23_PADDING", "OPENSSL_PKCS1_PADDING", "OPENSSL_PKCS1_OAEP_PADDING", "OPENSSL_NO_PADDING", "OPENSSL_KEYTYPE_RSA", "OPENSSL_KEYTYPE_EC", "OPENSSL_KEYTYPE_DSA", "OPENSSL_KEYTYPE_DH", "OPENSSL_CIPHER_RC2_64", "OPENSSL_CIPHER_RC2_40", "OPENSSL_CIPHER_RC2_128", "OPENSSL_CIPHER_DES", "OPENSSL_CIPHER_3DES", "OPENSSL_ALGO_SHA1", "OPENSSL_ALGO_MD5", "OPENSSL_ALGO_MD4", "OPENSSL_ALGO_DSS1", "ODBC_TYPE", "ODBC_BINMODE_RETURN", "ODBC_BINMODE_PASSTHRU", "ODBC_BINMODE_CONVERT", "NULL", "NORM_IGNOREWIDTH", "NORM_IGNORESYMBOLS", "NORM_IGNORENONSPACE", "NORM_IGNOREKANATYPE", "NORM_IGNORECASE", "NAN", "M_SQRTPI", "M_SQRT3", "M_SQRT2", "M_SQRT1_2", "M_PI_4", "M_PI_2", "M_PI", "M_LOG2E", "M_LOG10E", "M_LNPI", "M_LN2", "M_LN10", "M_EULER", "M_E", "M_2_SQRTPI", "M_2_PI", "M_1_PI", "MYSQL_NUM", "MYSQL_CLIENT_SSL", "MYSQL_CLIENT_INTERACTIVE", "MYSQL_CLIENT_IGNORE_SPACE", "MYSQL_CLIENT_COMPRESS", "MYSQL_BOTH", "MYSQL_ASSOC", "MYSQLI_ZEROFILL_FLAG", "MYSQLI_USE_RESULT", "MYSQLI_UNSIGNED_FLAG", "MYSQLI_UNIQUE_KEY_FLAG", "MYSQLI_TYPE_YEAR", "MYSQLI_TYPE_VAR_STRING", "MYSQLI_TYPE_TINY_BLOB", "MYSQLI_TYPE_TINY", "MYSQLI_TYPE_TIMESTAMP", "MYSQLI_TYPE_TIME", "MYSQLI_TYPE_STRING", "MYSQLI_TYPE_SHORT", "MYSQLI_TYPE_SET", "MYSQLI_TYPE_NULL", "MYSQLI_TYPE_NEWDECIMAL", "MYSQLI_TYPE_NEWDATE", "MYSQLI_TYPE_MEDIUM_BLOB", "MYSQLI_TYPE_LONG_BLOB", "MYSQLI_TYPE_LONGLONG", "MYSQLI_TYPE_LONG", "MYSQLI_TYPE_INTERVAL", "MYSQLI_TYPE_INT24", "MYSQLI_TYPE_GEOMETRY", "MYSQLI_TYPE_FLOAT", "MYSQLI_TYPE_ENUM", "MYSQLI_TYPE_DOUBLE", "MYSQLI_TYPE_DECIMAL", "MYSQLI_TYPE_DATETIME", "MYSQLI_TYPE_DATE", "MYSQLI_TYPE_CHAR", "MYSQLI_TYPE_BLOB", "MYSQLI_TYPE_BIT", "MYSQLI_TIMESTAMP_FLAG", "MYSQLI_STORE_RESULT", "MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH", "MYSQLI_STMT_ATTR_PREFETCH_ROWS", "MYSQLI_STMT_ATTR_CURSOR_TYPE", "MYSQLI_SET_FLAG", "MYSQLI_SET_CHARSET_NAME", "MYSQLI_SERVER_QUERY_WAS_SLOW", "MYSQLI_SERVER_QUERY_NO_INDEX_USED", "MYSQLI_SERVER_QUERY_NO_GOOD_INDEX_USED", "MYSQLI_REPORT_STRICT", "MYSQLI_REPORT_OFF", "MYSQLI_REPORT_INDEX", "MYSQLI_REPORT_ERROR", "MYSQLI_REPORT_ALL", "MYSQLI_REFRESH_THREADS", "MYSQLI_REFRESH_TABLES", "MYSQLI_REFRESH_STATUS", "MYSQLI_REFRESH_SLAVE", "MYSQLI_REFRESH_MASTER", "MYSQLI_REFRESH_LOG", "MYSQLI_REFRESH_HOSTS", "MYSQLI_REFRESH_GRANT", "MYSQLI_REFRESH_BACKUP_LOG", "MYSQLI_READ_DEFAULT_GROUP", "MYSQLI_READ_DEFAULT_FILE", "MYSQLI_PRI_KEY_FLAG", "MYSQLI_PART_KEY_FLAG", "MYSQLI_OPT_NET_READ_BUFFER_SIZE", "MYSQLI_OPT_NET_CMD_BUFFER_SIZE", "MYSQLI_OPT_LOCAL_INFILE", "MYSQLI_OPT_INT_AND_FLOAT_NATIVE", "MYSQLI_OPT_CONNECT_TIMEOUT", "MYSQLI_ON_UPDATE_NOW_FLAG", "MYSQLI_NUM_FLAG", "MYSQLI_NUM", "MYSQLI_NO_DEFAULT_VALUE_FLAG", "MYSQLI_NO_DATA", "MYSQLI_NOT_NULL_FLAG", "MYSQLI_MULTIPLE_KEY_FLAG", "MYSQLI_INIT_COMMAND", "MYSQLI_GROUP_FLAG", "MYSQLI_ENUM_FLAG", "MYSQLI_DEBUG_TRACE_ENABLED", "MYSQLI_DATA_TRUNCATED", "MYSQLI_CURSOR_TYPE_SCROLLABLE", "MYSQLI_CURSOR_TYPE_READ_ONLY", "MYSQLI_CURSOR_TYPE_NO_CURSOR", "MYSQLI_CURSOR_TYPE_FOR_UPDATE", "MYSQLI_CLIENT_SSL", "MYSQLI_CLIENT_NO_SCHEMA", "MYSQLI_CLIENT_INTERACTIVE", "MYSQLI_CLIENT_IGNORE_SPACE", "MYSQLI_CLIENT_FOUND_ROWS", "MYSQLI_CLIENT_COMPRESS", "MYSQLI_BOTH", "MYSQLI_BLOB_FLAG", "MYSQLI_BINARY_FLAG", "MYSQLI_AUTO_INCREMENT_FLAG", "MYSQLI_ASYNC", "MYSQLI_ASSOC", "MSG_WAITALL", "MSG_PEEK", "MSG_OOB", "MSG_DONTROUTE", "MK_E_UNAVAILABLE", "MCRYPT_XTEA", "MCRYPT_WAKE", "MCRYPT_TWOFISH", "MCRYPT_TRIPLEDES", "MCRYPT_THREEWAY", "MCRYPT_SKIPJACK", "MCRYPT_SERPENT", "MCRYPT_SAFERPLUS", "MCRYPT_SAFER64", "MCRYPT_SAFER128", "MCRYPT_RIJNDAEL_256", "MCRYPT_RIJNDAEL_192", "MCRYPT_RIJNDAEL_128", "MCRYPT_RC6", "MCRYPT_RC2", "MCRYPT_RAND", "MCRYPT_PANAMA", "MCRYPT_MODE_STREAM", "MCRYPT_MODE_OFB", "MCRYPT_MODE_NOFB", "MCRYPT_MODE_ECB", "MCRYPT_MODE_CFB", "MCRYPT_MODE_CBC", "MCRYPT_MARS", "MCRYPT_LOKI97", "MCRYPT_IDEA", "MCRYPT_GOST", "MCRYPT_ENIGNA", "MCRYPT_ENCRYPT", "MCRYPT_DEV_URANDOM", "MCRYPT_DEV_RANDOM", "MCRYPT_DES", "MCRYPT_DECRYPT", "MCRYPT_CRYPT", "MCRYPT_CAST_256", "MCRYPT_CAST_128", "MCRYPT_BLOWFISH_COMPAT", "MCRYPT_BLOWFISH", "MCRYPT_ARCFOUR_IV", "MCRYPT_ARCFOUR", "MCRYPT_3DES", "MB_OVERLOAD_STRING", "MB_OVERLOAD_REGEX", "MB_OVERLOAD_MAIL", "MB_CASE_UPPER", "MB_CASE_TITLE", "MB_CASE_LOWER", "LOG_WARNING", "LOG_UUCP", "LOG_USER", "LOG_SYSLOG", "LOG_PID", "LOG_PERROR", "LOG_ODELAY", "LOG_NOWAIT", "LOG_NOTICE", "LOG_NEWS", "LOG_NDELAY", "LOG_MAIL", "LOG_LPR", "LOG_KERN", "LOG_INFO", "LOG_ERR", "LOG_EMERG", "LOG_DEBUG", "LOG_DAEMON", "LOG_CRON", "LOG_CRIT", "LOG_CONS", "LOG_AUTHPRIV", "LOG_AUTH", "LOG_ALERT", "LOCK_UN", "LOCK_SH", "LOCK_NB", "LOCK_EX", "LIBXSLT_VERSION", "LIBXSLT_DOTTED_VERSION", "LIBXML_XINCLUDE", "LIBXML_VERSION", "LIBXML_PARSEHUGE", "LIBXML_NSCLEAN", "LIBXML_NOXMLDECL", "LIBXML_NOWARNING", "LIBXML_NONET", "LIBXML_NOERROR", "LIBXML_NOENT", "LIBXML_NOEMPTYTAG", "LIBXML_NOCDATA", "LIBXML_NOBLANKS", "LIBXML_LOADED_VERSION", "LIBXML_ERR_WARNING", "LIBXML_ERR_NONE", "LIBXML_ERR_FATAL", "LIBXML_ERR_ERROR", "LIBXML_DTDVALID", "LIBXML_DTDLOAD", "LIBXML_DTDATTR", "LIBXML_DOTTED_VERSION", "LIBXML_COMPACT", "LIBEXSLT_VERSION", "LIBEXSLT_DOTTED_VERSION", "LDAP_OPT_TIMELIMIT", "LDAP_OPT_SIZELIMIT", "LDAP_OPT_SERVER_CONTROLS", "LDAP_OPT_RESTART", "LDAP_OPT_REFERRALS", "LDAP_OPT_PROTOCOL_VERSION", "LDAP_OPT_NETWORK_TIMEOUT", "LDAP_OPT_MATCHED_DN", "LDAP_OPT_HOST_NAME", "LDAP_OPT_ERROR_STRING", "LDAP_OPT_ERROR_NUMBER", "LDAP_OPT_DEREF", "LDAP_OPT_DEBUG_LEVEL", "LDAP_OPT_CLIENT_CONTROLS", "LDAP_DEREF_SEARCHING", "LDAP_DEREF_NEVER", "LDAP_DEREF_FINDING", "LDAP_DEREF_ALWAYS", "LC_TIME", "LC_NUMERIC", "LC_MONETARY", "LC_CTYPE", "LC_COLLATE", "LC_ALL", "JSON_HEX_TAG", "JSON_HEX_QUOT", "JSON_HEX_APOS", "JSON_HEX_AMP", "JSON_FORCE_OBJECT", "JSON_ERROR_SYNTAX", "JSON_ERROR_STATE_MISMATCH", "JSON_ERROR_NONE", "JSON_ERROR_DEPTH", "JSON_ERROR_CTRL_CHAR", "INPUT_SESSION", "INPUT_SERVER", "INPUT_REQUEST", "INPUT_POST", "INPUT_GET", "INPUT_ENV", "INPUT_COOKIE", "INI_USER", "INI_SYSTEM", "INI_SCANNER_RAW", "INI_SCANNER_NORMAL", "INI_PERDIR", "INI_ALL", "INFO_VARIABLES", "INFO_MODULES", "INFO_LICENSE", "INFO_GENERAL", "INFO_ENVIRONMENT", "INFO_CREDITS", "INFO_CONFIGURATION", "INFO_ALL", "INF", "IMAGETYPE_XBM", "IMAGETYPE_WBMP", "IMAGETYPE_UNKNOWN", "IMAGETYPE_TIFF_MM", "IMAGETYPE_TIFF_II", "IMAGETYPE_SWF", "IMAGETYPE_SWC", "IMAGETYPE_PSD", "IMAGETYPE_PNG", "IMAGETYPE_JPX", "IMAGETYPE_JPEG2000", "IMAGETYPE_JPEG", "IMAGETYPE_JPC", "IMAGETYPE_JP2", "IMAGETYPE_JB2", "IMAGETYPE_IFF", "IMAGETYPE_ICO", "IMAGETYPE_GIF", "IMAGETYPE_COUNT", "IMAGETYPE_BMP", "ICONV_VERSION", "ICONV_MIME_DECODE_STRICT", "ICONV_MIME_DECODE_CONTINUE_ON_ERROR", "ICONV_IMPL", "HTTP_VERSION_NONE", "HTTP_VERSION_ANY", "HTTP_VERSION_1_1", "HTTP_VERSION_1_0", "HTTP_URL_STRIP_USER", "HTTP_URL_STRIP_QUERY", "HTTP_URL_STRIP_PORT", "HTTP_URL_STRIP_PATH", "HTTP_URL_STRIP_PASS", "HTTP_URL_STRIP_FRAGMENT", "HTTP_URL_STRIP_AUTH", "HTTP_URL_STRIP_ALL", "HTTP_URL_REPLACE", "HTTP_URL_JOIN_QUERY", "HTTP_URL_JOIN_PATH", "HTTP_URL_FROM_ENV", "HTTP_SUPPORT_SSLREQUESTS", "HTTP_SUPPORT_REQUESTS", "HTTP_SUPPORT_MAGICMIME", "HTTP_SUPPORT_EVENTS", "HTTP_SUPPORT_ENCODINGS", "HTTP_SUPPORT", "HTTP_SSL_VERSION_TLSv1", "HTTP_SSL_VERSION_SSLv3", "HTTP_SSL_VERSION_SSLv2", "HTTP_SSL_VERSION_ANY", "HTTP_REDIRECT_TEMP", "HTTP_REDIRECT_PROXY", "HTTP_REDIRECT_POST", "HTTP_REDIRECT_PERM", "HTTP_REDIRECT_FOUND", "HTTP_REDIRECT", "HTTP_QUERYSTRING_TYPE_STRING", "HTTP_QUERYSTRING_TYPE_OBJECT", "HTTP_QUERYSTRING_TYPE_INT", "HTTP_QUERYSTRING_TYPE_FLOAT", "HTTP_QUERYSTRING_TYPE_BOOL", "HTTP_QUERYSTRING_TYPE_ARRAY", "HTTP_PROXY_SOCKS5", "HTTP_PROXY_SOCKS4", "HTTP_PROXY_HTTP", "HTTP_PARAMS_RAISE_ERROR", "HTTP_PARAMS_DEFAULT", "HTTP_PARAMS_ALLOW_FAILURE", "HTTP_PARAMS_ALLOW_COMMA", "HTTP_MSG_RESPONSE", "HTTP_MSG_REQUEST", "HTTP_MSG_NONE", "HTTP_METH_VERSION_CONTROL", "HTTP_METH_UPDATE", "HTTP_METH_UNLOCK", "HTTP_METH_UNCHECKOUT", "HTTP_METH_TRACE", "HTTP_METH_REPORT", "HTTP_METH_PUT", "HTTP_METH_PROPPATCH", "HTTP_METH_PROPFIND", "HTTP_METH_POST", "HTTP_METH_OPTIONS", "HTTP_METH_MOVE", "HTTP_METH_MKWORKSPACE", "HTTP_METH_MKCOL", "HTTP_METH_MKACTIVITY", "HTTP_METH_MERGE", "HTTP_METH_LOCK", "HTTP_METH_LABEL", "HTTP_METH_HEAD", "HTTP_METH_GET", "HTTP_METH_DELETE", "HTTP_METH_COPY", "HTTP_METH_CONNECT", "HTTP_METH_CHECKOUT", "HTTP_METH_CHECKIN", "HTTP_METH_BASELINE_CONTROL", "HTTP_METH_ACL", "HTTP_IPRESOLVE_V6", "HTTP_IPRESOLVE_V4", "HTTP_IPRESOLVE_ANY", "HTTP_E_URL", "HTTP_E_SOCKET", "HTTP_E_RUNTIME", "HTTP_E_RESPONSE", "HTTP_E_REQUEST_POOL", "HTTP_E_REQUEST_METHOD", "HTTP_E_REQUEST", "HTTP_E_QUERYSTRING", "HTTP_E_MESSAGE_TYPE", "HTTP_E_MALFORMED_HEADERS", "HTTP_E_INVALID_PARAM", "HTTP_E_HEADER", "HTTP_E_ENCODING", "HTTP_ENCODING_STREAM_FLUSH_SYNC", "HTTP_ENCODING_STREAM_FLUSH_NONE", "HTTP_ENCODING_STREAM_FLUSH_FULL", "HTTP_DEFLATE_TYPE_ZLIB", "HTTP_DEFLATE_TYPE_RAW", "HTTP_DEFLATE_TYPE_GZIP", "HTTP_DEFLATE_STRATEGY_RLE", "HTTP_DEFLATE_STRATEGY_HUFF", "HTTP_DEFLATE_STRATEGY_FIXED", "HTTP_DEFLATE_STRATEGY_FILT", "HTTP_DEFLATE_STRATEGY_DEF", "HTTP_DEFLATE_LEVEL_MIN", "HTTP_DEFLATE_LEVEL_MAX", "HTTP_DEFLATE_LEVEL_DEF", "HTTP_COOKIE_SECURE", "HTTP_COOKIE_PARSE_RAW", "HTTP_COOKIE_HTTPONLY", "HTTP_AUTH_NTLM", "HTTP_AUTH_GSSNEG", "HTTP_AUTH_DIGEST", "HTTP_AUTH_BASIC", "HTTP_AUTH_ANY", "HTML_SPECIALCHARS", "HTML_ENTITIES", "HASH_HMAC", "GLOB_ONLYDIR", "GLOB_NOSORT", "GLOB_NOESCAPE", "GLOB_NOCHECK", "GLOB_MARK", "GLOB_ERR", "GLOB_BRACE", "GLOB_AVAILABLE_FLAGS", "FTP_TIMEOUT_SEC", "FTP_TEXT", "FTP_MOREDATA", "FTP_IMAGE", "FTP_FINISHED", "FTP_FAILED", "FTP_BINARY", "FTP_AUTOSEEK", "FTP_AUTORESUME", "FTP_ASCII", "FORCE_GZIP", "FORCE_DEFLATE", "FNM_PERIOD", "FNM_PATHNAME", "FNM_NOESCAPE", "FNM_CASEFOLD", "FILTER_VALIDATE_URL", "FILTER_VALIDATE_REGEXP", "FILTER_VALIDATE_IP", "FILTER_VALIDATE_INT", "FILTER_VALIDATE_FLOAT", "FILTER_VALIDATE_EMAIL", "FILTER_VALIDATE_BOOLEAN", "FILTER_UNSAFE_RAW", "FILTER_SANITIZE_URL", "FILTER_SANITIZE_STRIPPED", "FILTER_SANITIZE_STRING", "FILTER_SANITIZE_SPECIAL_CHARS", "FILTER_SANITIZE_NUMBER_INT", "FILTER_SANITIZE_NUMBER_FLOAT", "FILTER_SANITIZE_MAGIC_QUOTES", "FILTER_SANITIZE_ENCODED", "FILTER_SANITIZE_EMAIL", "FILTER_REQUIRE_SCALAR", "FILTER_REQUIRE_ARRAY", "FILTER_NULL_ON_FAILURE", "FILTER_FORCE_ARRAY", "FILTER_FLAG_STRIP_LOW", "FILTER_FLAG_STRIP_HIGH", "FILTER_FLAG_STRIP_BACKTICK", "FILTER_FLAG_SCHEME_REQUIRED", "FILTER_FLAG_QUERY_REQUIRED", "FILTER_FLAG_PATH_REQUIRED", "FILTER_FLAG_NO_RES_RANGE", "FILTER_FLAG_NO_PRIV_RANGE", "FILTER_FLAG_NO_ENCODE_QUOTES", "FILTER_FLAG_NONE", "FILTER_FLAG_IPV6", "FILTER_FLAG_IPV4", "FILTER_FLAG_HOST_REQUIRED", "FILTER_FLAG_ENCODE_LOW", "FILTER_FLAG_ENCODE_HIGH", "FILTER_FLAG_ENCODE_AMP", "FILTER_FLAG_EMPTY_STRING_NULL", "FILTER_FLAG_ALLOW_THOUSAND", "FILTER_FLAG_ALLOW_SCIENTIFIC", "FILTER_FLAG_ALLOW_OCTAL", "FILTER_FLAG_ALLOW_HEX", "FILTER_FLAG_ALLOW_FRACTION", "FILTER_DEFAULT", "FILTER_CALLBACK", "FILE_USE_INCLUDE_PATH", "FILE_TEXT", "FILE_SKIP_EMPTY_LINES", "FILE_NO_DEFAULT_CONTEXT", "FILE_IGNORE_NEW_LINES", "FILE_BINARY", "FILE_APPEND", "FALSE", "E_WARNING", "E_USER_WARNING", "E_USER_NOTICE", "E_USER_ERROR", "E_USER_DEPRECATED", "E_STRICT", "E_RECOVERABLE_ERROR", "E_PARSE", "E_NOTICE", "E_ERROR", "E_DEPRECATED", "E_CORE_WARNING", "E_CORE_ERROR", "E_COMPILE_WARNING", "E_COMPILE_ERROR", "E_ALL", "EXTR_SKIP", "EXTR_REFS", "EXTR_PREFIX_SAME", "EXTR_PREFIX_INVALID", "EXTR_PREFIX_IF_EXISTS", "EXTR_PREFIX_ALL", "EXTR_OVERWRITE", "EXTR_IF_EXISTS", "EXIF_USE_MBSTRING", "ENT_QUOTES", "ENT_NOQUOTES", "ENT_IGNORE", "ENT_COMPAT", "DOM_WRONG_DOCUMENT_ERR", "DOM_VALIDATION_ERR", "DOM_SYNTAX_ERR", "DOM_PHP_ERR", "DOM_NO_MODIFICATION_ALLOWED_ERR", "DOM_NO_DATA_ALLOWED_ERR", "DOM_NOT_SUPPORTED_ERR", "DOM_NOT_FOUND_ERR", "DOM_NAMESPACE_ERR", "DOM_INVALID_STATE_ERR", "DOM_INVALID_MODIFICATION_ERR", "DOM_INVALID_CHARACTER_ERR", "DOM_INVALID_ACCESS_ERR", "DOM_INUSE_ATTRIBUTE_ERR", "DOM_INDEX_SIZE_ERR", "DOM_HIERARCHY_REQUEST_ERR", "DOMSTRING_SIZE_ERR", "DNS_TXT", "DNS_SRV", "DNS_SOA", "DNS_PTR", "DNS_NS", "DNS_NAPTR", "DNS_MX", "DNS_HINFO", "DNS_CNAME", "DNS_ANY", "DNS_ALL", "DNS_AAAA", "DNS_A6", "DNS_A", "DISP_E_OVERFLOW", "DISP_E_DIVBYZERO", "DISP_E_BADINDEX", "DIRECTORY_SEPARATOR", "DEFAULT_INCLUDE_PATH", "DATE_W3C", "DATE_RSS", "DATE_RFC850", "DATE_RFC822", "DATE_RFC3339", "DATE_RFC2822", "DATE_RFC1123", "DATE_RFC1036", "DATE_ISO8601", "DATE_COOKIE", "DATE_ATOM", "CRYPT_STD_DES", "CRYPT_SHA512", "CRYPT_SHA256", "CRYPT_SALT_LENGTH", "CRYPT_MD5", "CRYPT_EXT_DES", "CRYPT_BLOWFISH", "CREDITS_SAPI", "CREDITS_QA", "CREDITS_MODULES", "CREDITS_GROUP", "CREDITS_GENERAL", "CREDITS_FULLPAGE", "CREDITS_DOCS", "CREDITS_ALL", "CP_UTF8", "CP_UTF7", "CP_THREAD_ACP", "CP_SYMBOL", "CP_OEMCP", "CP_MACCP", "CP_ACP", "COUNT_RECURSIVE", "COUNT_NORMAL", "CONNECTION_TIMEOUT", "CONNECTION_NORMAL", "CONNECTION_ABORTED", "CLSCTX_SERVER", "CLSCTX_REMOTE_SERVER", "CLSCTX_LOCAL_SERVER", "CLSCTX_INPROC_SERVER", "CLSCTX_INPROC_HANDLER", "CLSCTX_ALL", "CHAR_MAX", "CASE_UPPER", "CASE_LOWER", "CAL_NUM_CALS", "CAL_MONTH_JULIAN_SHORT", "CAL_MONTH_JULIAN_LONG", "CAL_MONTH_JEWISH", "CAL_MONTH_GREGORIAN_SHORT", "CAL_MONTH_GREGORIAN_LONG", "CAL_MONTH_FRENCH", "CAL_JULIAN", "CAL_JEWISH_ADD_GERESHAYIM", "CAL_JEWISH_ADD_ALAFIM_GERESH", "CAL_JEWISH_ADD_ALAFIM", "CAL_JEWISH", "CAL_GREGORIAN", "CAL_FRENCH", "CAL_EASTER_ROMAN", "CAL_EASTER_DEFAULT", "CAL_EASTER_ALWAYS_JULIAN", "CAL_EASTER_ALWAYS_GREGORIAN", "CAL_DOW_SHORT", "CAL_DOW_LONG", "CAL_DOW_DAYNO", "ASSERT_WARNING", "ASSERT_QUIET_EVAL", "ASSERT_CALLBACK", "ASSERT_BAIL", "ASSERT_ACTIVE", "APACHE_MAP", "AF_UNIX", "AF_INET6", "AF_INET"
				],
				boundary: "\\b"
			},
			
			openTag: {
				values: ["<?php"],
				boundary: "\\s"
			},
			
			shortOpenTag: {
				values: ["<?=", "<?"],
				boundary: ""
			},
			
			closeTag: {
				values: ["?>"],
				boundary: ""
			}
		},

		scopes: {
			string: [ ["\"", "\"", sunlight.util.escapeSequences.concat(["\\\""])], ["'", "'", ["\\\'", "\\\\"]] ],
			comment: [ ["//", "\n", null, true], ["/*", "*/"], ["#", "\n", null, true] ],
			variable: [ ["$", { length: 1, regex: /[^\$A-Za-z0-9_]/ }, null, true] ]
		},
		
		customParseRules: [
			//heredoc/nowdoc
			function(context) {
				var value = "<<<",
					line = context.reader.getLine(),
					column = context.reader.getColumn(),
					ident = "",
					isNowdoc = false,
					peek;
				
				
				if (context.reader.current() !== "<" || context.reader.peek(2) !== "<<") {
					return null;
				}
				
				context.reader.read(2);
				
				peek = context.reader.peek();
				while (peek !== context.reader.EOF && peek !== "\n") {
					value += context.reader.read();
					
					if (peek !== "'") {
						//ignore NOWDOC apostophres
						ident += context.reader.current();
					} else {
						isNowdoc = true;
					}
					
					peek = context.reader.peek();
				}
				
				if (peek !== context.reader.EOF) {
					//read the newline
					value += context.reader.read();
					
					//read until "\n{ident};"
					while (context.reader.peek() !== context.reader.EOF) {
						if (context.reader.peek(ident.length + 2) === "\n" + ident + ";") {
							break;
						}
						
						value += context.reader.read();
					}
					
					if (context.reader.peek() !== context.reader.EOF) {
						value += context.reader.read(ident.length + 1); //don't read the semicolon
					}
				}
				
				return context.createToken(isNowdoc ? "nowdoc" : "heredoc", value, line, column);
			}
		],

		identFirstLetter: /[A-Za-z_]/,
		identAfterFirstLetter: /\w/,

		namedIdentRules: {
			custom: [
				function(context) {
					//must be preceded by "new"
					var prevToken = sunlight.util.getPreviousNonWsToken(context.tokens, context.index),
						nextToken;
					
					if (!prevToken || prevToken.name !== "keyword" || prevToken.value !== "new") {
						return false;
					}
					
					//if the next token is "\" then don't color it (fully qualified type name)
					nextToken = sunlight.util.getNextNonWsToken(context.tokens, context.index);
					if (nextToken && nextToken.name === "operator" && nextToken.value === "\\") {
						return false;
					}
					
					return true;
				},
				
				//use alias type names, e.g. "Foo" in "use My\Namespace\Foo;"
				function(context) {
					var nextToken = sunlight.util.getNextNonWsToken(context.tokens, context.index),
						token,
						index;
					
					if (!nextToken || nextToken.name !== "punctuation" || (nextToken.value !== ";" && nextToken.value !== ",")) {
						return false;
					}
					
					//should be preceded by idents and backslashes and commas, and then "use "
					index = context.index;
					while (token = context.tokens[--index]) {
						if (token.name !== "ident" && token.name !== "default" && (token.name !== "operator" || token.value !== "\\") && (token.name !== "punctuation" || token.value !== ",")) {
							//should be the "use" keyword
							return token.name === "keyword" && token.value === "use";
						}
					}
					
					return false;
				},
				
				function(context) {
					//next token is not the namespace delimiter
					var nextToken = sunlight.util.getNextNonWsToken(context.tokens, context.index),
						token,
						index,
						previous;
					
					if (nextToken && nextToken.name === "operator" && nextToken.value === "\\") {
						return false;
					}
					
					//go backward and make sure that there are only idents and dots before the new keyword
					//"previous" is used to make sure that method declarations like "public new Object Value()..." are treated correctly
					index = context.index;
					previous = context.tokens[index];
					while ((token = context.tokens[--index]) !== undefined) {
						if (token.name === "keyword" && (token.value === "new" || token.value === "instanceof")) {
							return true;
						}
						
						if (token.name === "default") {
							continue;
						}
						
						if (token.name === "ident") {
							if (previous && previous.name === "ident") {
								return false;
							}
							
							previous = token;
							continue;
						}
						
						if (token.name === "operator" && token.value === "\\") {
							if (previous && previous.name !== "ident") {
								return false;
							}
							
							previous = token;
							continue;
						}
						
						break;
					}
					
					return false;
				}
			],
			
			follows: [
				//extends/implements class names
				[{ token: "ident" }, sunlight.util.whitespace, { token: "keyword", values: ["extends", "implements"] }, sunlight.util.whitespace],

				[{ token: "keyword", values: ["class", "interface", "abstract", "final"] }, sunlight.util.whitespace]
			],
			
			precedes: [
				//static method calls
				[sunlight.util.whitespace, { token: "operator", values: ["::"] }],
				
				//typehints
				[{ token: "default" }, { token: "variable" }]
			],

			between: [
				{ opener: { token: "keyword", values: ["implements"] }, closer: { token: "punctuation", values: ["{"] } }
			]
		},
		
		//caseInsensitive: true,

		operators: [
			//member access
			"::", "->",
			
			//arithmetic
			"++", "+=", "+",
			"--", "-=", "-",
			      "*=", "*",
			      "/=", "/",
			      "%=", "%",

			//boolean
			"&&", "||",

			//bitwise
			"|=",   "|",
			"&=",   "&",
			"^=",   "^",
			">>=", ">>",
			"<<=", "<<",

			//inequality
			"<=", "<",
			">=", ">",
			"===", "==", "!==", "!=",

			//unary
			"!", "~",

			//other
			"?:", "?", ":", ".=", ".", "=>", "=", "\\"
		]
	});
}(this["Sunlight"], document));