X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/php/PHPCodeScanner.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/php/PHPCodeScanner.java index 9e75272..70df0eb 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/php/PHPCodeScanner.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/php/PHPCodeScanner.java @@ -1,2423 +1,259 @@ /********************************************************************** -Copyright (c) 2000, 2002 IBM Corp. and others. -All rights reserved. This program and the accompanying materials -are made available under the terms of the Common Public License v1.0 -which accompanies this distribution, and is available at -http://www.eclipse.org/legal/cpl-v10.html + Copyright (c) 2000, 2002 IBM Corp. and others. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Common Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/cpl-v10.html -Contributors: - IBM Corporation - Initial implementation - Klaus Hartlage - www.eclipseproject.de -**********************************************************************/ + Contributors: + IBM Corporation - Initial implementation + www.phpeclipse.de + **********************************************************************/ package net.sourceforge.phpeclipse.phpeditor.php; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; -import net.sourceforge.phpeclipse.phpeditor.util.PHPColorProvider; +import net.sourceforge.phpdt.internal.ui.text.AbstractJavaScanner; +import net.sourceforge.phpdt.ui.text.IColorManager; +import net.sourceforge.phpeclipse.IPreferenceConstants; +import net.sourceforge.phpeclipse.phpeditor.PHPSyntaxRdr; import net.sourceforge.phpeclipse.phpeditor.util.PHPWhitespaceDetector; import net.sourceforge.phpeclipse.phpeditor.util.PHPWordDetector; -import org.eclipse.jface.text.TextAttribute; -import org.eclipse.jface.text.rules.EndOfLineRule; + +import org.eclipse.jface.preference.IPreferenceStore; +//incastrix +//import org.eclipse.jface.text.Assert; +import org.eclipse.core.runtime.Assert; import org.eclipse.jface.text.rules.ICharacterScanner; import org.eclipse.jface.text.rules.IRule; import org.eclipse.jface.text.rules.IToken; import org.eclipse.jface.text.rules.IWordDetector; import org.eclipse.jface.text.rules.MultiLineRule; -import org.eclipse.jface.text.rules.RuleBasedScanner; -import org.eclipse.jface.text.rules.SingleLineRule; import org.eclipse.jface.text.rules.Token; import org.eclipse.jface.text.rules.WhitespaceRule; import org.eclipse.jface.text.rules.WordRule; /** - * A Java code scanner. + * PHP Code Scanner */ -public class PHPCodeScanner extends RuleBasedScanner { +public class PHPCodeScanner extends AbstractJavaScanner { + + /** + * Rule to detect java operators. + * + * @since 3.0 + */ + protected class OperatorRule implements IRule { + + /** Java operators */ + private final char[] PHP_OPERATORS = { ';', '(', ')', '.', '=', '/', + '\\', '+', '-', '*', '[', ']', '<', '>', ':', '?', '!', ',', + '|', '&', '^', '%', '~', '@' }; - private static String[] fgKeywords = - { - "if", - "elseif", - "else", - "endif", - "for", - "endfor", - "while", - "endwhile", - "switch", - "case", - "endswitch", - "break", - "continue", - "return", - "define", - "include", - "include_once", - "require", - "require_once", - "function", - "class", - "new", - "do", - "old_function", - "default", - "global", - "static", - "foreach", - "endforeach", - "extends", - "empty", - "array", - "isset", - "echo", - "var" }; + /** Token to return for this rule */ + private final IToken fToken; - private static String[] fgTypes = - { - "COM_invoke", - "COM_load", - "abs", - "accept_connect", - "acos", - "add", - "add", - "add_iovec", - "addaction", - "addcolor", - "addcslashes", - "addentry", - "addfill", - "addshape", - "addslashes", - "addstring", - "addstring", - "align", - "apache_child_terminate", - "apache_lookup_uri", - "apache_lookup_uri", - "apache_note", - "apache_sub_req", - "array_count_values", - "array_diff", - "array_filter", - "array_flip", - "array_intersect", - "array_keys", - "array_map", - "array_merge", - "array_merge_recursive", - "array_multisort", - "array_pad", - "array_pop", - "array_push", - "array_rand", - "array_reduce", - "array_reverse", - "array_search", - "array_shift", - "array_slice", - "array_splice", - "array_sum", - "array_unique", - "array_unshift", - "array_values", - "array_walk", - "arsort", - "asin", - "asort", - "aspell_check", - "aspell_check_raw", - "aspell_new", - "aspell_suggest", - "assert", - "assert_options", - "atan", - "atan2", - "base64_decode", - "base64_encode", - "base_convert", - "basename", - "bcadd", - "bccomp", - "bcdiv", - "bcmod", - "bcmul", - "bcpow", - "bcscale", - "bcsqrt", - "bcsub", - "bin2hex", - "bind", - "bindec", - "bindtextdomain", - "build_iovec", - "bzclose", - "bzcompress", - "bzdecompress", - "bzerrno", - "bzerror", - "bzerrstr", - "bzflush", - "bzopen", - "bzread", - "bzwrite", - "call_user_func", - "call_user_func_array", - "call_user_method", - "call_user_method_array", - "ccvs_add", - "ccvs_auth", - "ccvs_command", - "ccvs_count", - "ccvs_delete", - "ccvs_done", - "ccvs_init", - "ccvs_lookup", - "ccvs_new", - "ccvs_report", - "ccvs_return", - "ccvs_reverse", - "ccvs_sale", - "ccvs_status", - "ccvs_textvalue", - "ccvs_void", - "ceil", - "chdir", - "checkdate", - "checkdnsrr", - "checkdnsrr", - "chgrp", - "chmod", - "chop", - "chown", - "chr", - "chroot", - "chroot", - "chunk_split", - "class_exists", - "clearstatcache", - "close", - "closedir", - "closelog", - "com_get", - "com_propget", - "com_propput", - "com_propset", - "com_set", - "compact", - "confirm_cybermut_compiled", - "confirm_extname_compiled", - "connect", - "connection_aborted", - "connection_status", - "constant", - "convert_cyr_string", - "copy", - "cos", - "count", - "count_chars", - "cpdf_add_annotation", - "cpdf_add_outline", - "cpdf_arc", - "cpdf_begin_text", - "cpdf_circle", - "cpdf_clip", - "cpdf_close", - "cpdf_closepath", - "cpdf_closepath_fill_stroke", - "cpdf_closepath_stroke", - "cpdf_continue_text", - "cpdf_curveto", - "cpdf_end_text", - "cpdf_fill", - "cpdf_fill_stroke", - "cpdf_finalize", - "cpdf_finalize_page", - "cpdf_global_set_document_limits", - "cpdf_import_jpeg", - "cpdf_lineto", - "cpdf_moveto", - "cpdf_newpath", - "cpdf_open", - "cpdf_output_buffer", - "cpdf_page_init", - "cpdf_place_inline_image", - "cpdf_rect", - "cpdf_restore", - "cpdf_rlineto", - "cpdf_rmoveto", - "cpdf_rotate", - "cpdf_rotate_text", - "cpdf_save", - "cpdf_save_to_file", - "cpdf_scale", - "cpdf_set_action_url", - "cpdf_set_char_spacing", - "cpdf_set_creator", - "cpdf_set_current_page", - "cpdf_set_font", - "cpdf_set_font_directories", - "cpdf_set_font_map_file", - "cpdf_set_horiz_scaling", - "cpdf_set_keywords", - "cpdf_set_leading", - "cpdf_set_page_animation", - "cpdf_set_subject", - "cpdf_set_text_matrix", - "cpdf_set_text_pos", - "cpdf_set_text_rendering", - "cpdf_set_text_rise", - "cpdf_set_title", - "cpdf_set_viewer_preferences", - "cpdf_set_word_spacing", - "cpdf_setdash", - "cpdf_setflat", - "cpdf_setgray", - "cpdf_setgray_fill", - "cpdf_setgray_stroke", - "cpdf_setlinecap", - "cpdf_setlinejoin", - "cpdf_setlinewidth", - "cpdf_setmiterlimit", - "cpdf_setrgbcolor", - "cpdf_setrgbcolor_fill", - "cpdf_setrgbcolor_stroke", - "cpdf_show", - "cpdf_show_xy", - "cpdf_stringwidth", - "cpdf_stroke", - "cpdf_text", - "cpdf_translate", - "crack_check", - "crack_closedict", - "crack_getlastmessage", - "crack_opendict", - "crash", - "crc32", - "create_function", - "crypt", - "crypt", - "ctype_alnum", - "ctype_alpha", - "ctype_cntrl", - "ctype_digit", - "ctype_graph", - "ctype_lower", - "ctype_print", - "ctype_punct", - "ctype_space", - "ctype_upper", - "ctype_xdigit", - "curl_close", - "curl_errno", - "curl_error", - "curl_exec", - "curl_getinfo", - "curl_getinfo", - "curl_init", - "curl_setopt", - "curl_version", - "current", - "cv_add", - "cv_auth", - "cv_command", - "cv_count", - "cv_delete", - "cv_done", - "cv_init", - "cv_lookup", - "cv_new", - "cv_report", - "cv_return", - "cv_reverse", - "cv_sale", - "cv_status", - "cv_textvalue", - "cv_void", - "cybercash_base64_decode", - "cybercash_base64_encode", - "cybercash_decr", - "cybercash_encr", - "cybermut_creerformulairecm", - "cybermut_creerreponsecm", - "cybermut_testmac", - "date", - "dba_close", - "dba_delete", - "dba_exists", - "dba_fetch", - "dba_firstkey", - "dba_insert", - "dba_nextkey", - "dba_open", - "dba_optimize", - "dba_popen", - "dba_replace", - "dba_sync", - "dbase_add_record", - "dbase_close", - "dbase_create", - "dbase_delete_record", - "dbase_get_record", - "dbase_get_record_with_names", - "dbase_numfields", - "dbase_numrecords", - "dbase_open", - "dbase_pack", - "dbase_replace_record", - "dblist", - "dbmclose", - "dbmdelete", - "dbmexists", - "dbmfetch", - "dbmfirstkey", - "dbminsert", - "dbmnextkey", - "dbmopen", - "dbmreplace", - "dbx_close", - "dbx_cmp_asc", - "dbx_cmp_desc", - "dbx_connect", - "dbx_error", - "dbx_query", - "dbx_sort", - "dcgettext", - "decbin", - "dechex", - "decoct", - "define", - "define_syslog_variables", - "defined", - "deg2rad", - "delete_iovec", - "dgettext", - "dir", - "dirname", - "diskfreespace", - "display_disabled_function", - "dl", - "domxml_add_root", - "domxml_attributes", - "domxml_children", - "domxml_dumpmem", - "domxml_elem_get_attribute", - "domxml_elem_set_attribute", - "domxml_get_attribute", - "domxml_getattr", - "domxml_new_child", - "domxml_new_xmldoc", - "domxml_node", - "domxml_node_attributes", - "domxml_node_children", - "domxml_node_new_child", - "domxml_node_set_content", - "domxml_node_unlink_node", - "domxml_root", - "domxml_set_attribute", - "domxml_setattr", - "domxml_unlink_node", - "domxml_version", - "doubleval", - "drawarc", - "drawcircle", - "drawcubic", - "drawcubicto", - "drawcurve", - "drawcurveto", - "drawglyph", - "drawline", - "drawlineto", - "each", - "easter_date", - "easter_days", - "end", - "ereg", - "ereg_replace", - "eregi", - "eregi_replace", - "error_log", - "error_reporting", - "escapeshellarg", - "escapeshellcmd", - "exec", - "exit", - "exp", - "explode", - "extension_loaded", - "extract", - "ezmlm_hash", - "ezmlm_hash", - "fbsql", - "fbsql_affected_rows", - "fbsql_autocommit", - "fbsql_close", - "fbsql_commit", - "fbsql_connect", - "fbsql_create_db", - "fbsql_data_seek", - "fbsql_database", - "fbsql_database_password", - "fbsql_db_query", - "fbsql_drop_db", - "fbsql_errno", - "fbsql_error", - "fbsql_fetch_array", - "fbsql_fetch_assoc", - "fbsql_fetch_field", - "fbsql_fetch_lengths", - "fbsql_fetch_object", - "fbsql_fetch_row", - "fbsql_field_flags", - "fbsql_field_len", - "fbsql_field_name", - "fbsql_field_seek", - "fbsql_field_table", - "fbsql_field_type", - "fbsql_free_result", - "fbsql_hostname", - "fbsql_insert_id", - "fbsql_list_dbs", - "fbsql_list_fields", - "fbsql_list_tables", - "fbsql_next_result", - "fbsql_num_fields", - "fbsql_num_rows", - "fbsql_password", - "fbsql_pconnect", - "fbsql_query", - "fbsql_result", - "fbsql_rollback", - "fbsql_select_db", - "fbsql_start_db", - "fbsql_stop_db", - "fbsql_username", - "fbsql_warnings", - "fclose", - "fd_alloc", - "fd_clear", - "fd_dealloc", - "fd_isset", - "fd_set", - "fd_zero", - "fdf_add_template", - "fdf_close", - "fdf_create", - "fdf_get_file", - "fdf_get_status", - "fdf_get_value", - "fdf_next_field_name", - "fdf_open", - "fdf_save", - "fdf_set_ap", - "fdf_set_file", - "fdf_set_flags", - "fdf_set_javascript_action", - "fdf_set_opt", - "fdf_set_status", - "fdf_set_submit_form_action", - "fdf_set_value", - "feof", - "fetch_iovec", - "fflush", - "fgetc", - "fgetcsv", - "fgets", - "fgetss", - "file", - "file_exists", - "fileatime", - "filectime", - "filegroup", - "fileinode", - "filemtime", - "fileowner", - "fileperms", - "filepro", - "filepro_fieldcount", - "filepro_fieldname", - "filepro_fieldtype", - "filepro_fieldwidth", - "filepro_retrieve", - "filepro_rowcount", - "filesize", - "filetype", - "flock", - "floor", - "flush", - "fopen", - "fopenstream", - "fopenstream", - "fpassthru", - "fputs", - "fread", - "free_iovec", - "frenchtojd", - "fribidi_log2vis", - "fscanf", - "fseek", - "fsockopen", - "fstat", - "ftell", - "ftp_cdup", - "ftp_chdir", - "ftp_connect", - "ftp_delete", - "ftp_exec", - "ftp_fget", - "ftp_fput", - "ftp_get", - "ftp_login", - "ftp_mdtm", - "ftp_mkdir", - "ftp_nlist", - "ftp_pasv", - "ftp_put", - "ftp_pwd", - "ftp_quit", - "ftp_rawlist", - "ftp_rename", - "ftp_rmdir", - "ftp_site", - "ftp_size", - "ftp_systype", - "ftruncate", - "func_get_arg", - "func_get_args", - "func_num_args", - "function_exists", - "fwrite", - "get_all_headers", - "get_browser", - "get_cfg_var", - "get_class", - "get_class_methods", - "get_class_vars", - "get_current_user", - "get_declared_classes", - "get_defined_functions", - "get_defined_vars", - "get_extension_funcs", - "get_html_translation_table", - "get_included_files", - "get_loaded_extensions", - "get_magic_quotes_gpc", - "get_magic_quotes_runtime", - "get_meta_tags", - "get_object_vars", - "get_parent_class", - "get_required_files", - "get_resource_type", - "getallheaders", - "getallheaders", - "getascent", - "getascent", - "getcwd", - "getdate", - "getdescent", - "getdescent", - "getenv", - "getheight", - "gethostbyaddr", - "gethostbyaddr", - "gethostbyname", - "gethostbyname", - "gethostbynamel", - "getimagesize", - "getlastmod", - "getleading", - "getleading", - "getmxrr", - "getmxrr", - "getmyinode", - "getmypid", - "getmyuid", - "getpeername", - "getprotobyname", - "getprotobynumber", - "getrandmax", - "getrusage", - "getrusage", - "getservbyname", - "getservbyport", - "getshape1", - "getshape2", - "getsockname", - "getsockopt", - "gettext", - "gettimeofday", - "gettype", - "getwidth", - "getwidth", - "getwidth", - "gmdate", - "gmmktime", - "gmp_abs", - "gmp_add", - "gmp_and", - "gmp_clrbit", - "gmp_cmp", - "gmp_com", - "gmp_div", - "gmp_div_q", - "gmp_div_qr", - "gmp_div_r", - "gmp_divexact", - "gmp_fact", - "gmp_gcd", - "gmp_gcdext", - "gmp_hamdist", - "gmp_init", - "gmp_intval", - "gmp_invert", - "gmp_jacobi", - "gmp_legendre", - "gmp_mod", - "gmp_mul", - "gmp_neg", - "gmp_or", - "gmp_perfect_square", - "gmp_popcount", - "gmp_pow", - "gmp_powm", - "gmp_prob_prime", - "gmp_random", - "gmp_scan0", - "gmp_scan1", - "gmp_setbit", - "gmp_sign", - "gmp_sqrt", - "gmp_sqrtrem", - "gmp_strval", - "gmp_sub", - "gmp_xor", - "gmstrftime", - "gmstrftime", - "gregoriantojd", - "gzclose", - "gzcompress", - "gzdeflate", - "gzencode", - "gzeof", - "gzfile", - "gzgetc", - "gzgets", - "gzgetss", - "gzinflate", - "gzopen", - "gzpassthru", - "gzputs", - "gzread", - "gzrewind", - "gzseek", - "gztell", - "gzuncompress", - "gzwrite", - "header", - "headers_sent", - "hebrev", - "hebrevc", - "hexdec", - "highlight_file", - "highlight_string", - "htmlentities", - "htmlspecialchars", - "hw_array2objrec", - "hw_changeobject", - "hw_children", - "hw_childrenobj", - "hw_close", - "hw_connect", - "hw_connection_info", - "hw_cp", - "hw_deleteobject", - "hw_docbyanchor", - "hw_docbyanchorobj", - "hw_document_attributes", - "hw_document_bodytag", - "hw_document_content", - "hw_document_setcontent", - "hw_document_size", - "hw_dummy", - "hw_edittext", - "hw_error", - "hw_errormsg", - "hw_free_document", - "hw_getanchors", - "hw_getanchorsobj", - "hw_getandlock", - "hw_getcgi", - "hw_getchildcoll", - "hw_getchildcollobj", - "hw_getchilddoccoll", - "hw_getchilddoccollobj", - "hw_getobject", - "hw_getobjectbyftquery", - "hw_getobjectbyftquerycoll", - "hw_getobjectbyftquerycollobj", - "hw_getobjectbyftqueryobj", - "hw_getobjectbyquery", - "hw_getobjectbyquerycoll", - "hw_getobjectbyquerycollobj", - "hw_getobjectbyqueryobj", - "hw_getparents", - "hw_getparentsobj", - "hw_getrellink", - "hw_getremote", - "hw_getremotechildren", - "hw_getsrcbydestobj", - "hw_gettext", - "hw_getusername", - "hw_identify", - "hw_incollections", - "hw_info", - "hw_inscoll", - "hw_insdoc", - "hw_insertanchors", - "hw_insertdocument", - "hw_insertobject", - "hw_mapid", - "hw_modifyobject", - "hw_mv", - "hw_new_document", - "hw_new_document_from_file", - "hw_objrec2array", - "hw_output_document", - "hw_pconnect", - "hw_pipecgi", - "hw_pipedocument", - "hw_root", - "hw_setlinkroot", - "hw_stat", - "hw_unlock", - "hw_who", - "ibase_blob_add", - "ibase_blob_cancel", - "ibase_blob_close", - "ibase_blob_create", - "ibase_blob_echo", - "ibase_blob_get", - "ibase_blob_import", - "ibase_blob_info", - "ibase_blob_open", - "ibase_close", - "ibase_commit", - "ibase_connect", - "ibase_errmsg", - "ibase_execute", - "ibase_fetch_object", - "ibase_fetch_row", - "ibase_field_info", - "ibase_free_query", - "ibase_free_result", - "ibase_num_fields", - "ibase_pconnect", - "ibase_prepare", - "ibase_query", - "ibase_rollback", - "ibase_timefmt", - "ibase_trans", - "icap_create_calendar", - "icap_delete_calendar", - "icap_delete_event", - "icap_fetch_event", - "icap_list_alarms", - "icap_list_events", - "icap_open", - "icap_popen", - "icap_rename_calendar", - "icap_reopen", - "icap_snooze", - "icap_store_event", - "iconv", - "iconv_get_encoding", - "iconv_set_encoding", - "ifx_affected_rows", - "ifx_blobinfile_mode", - "ifx_byteasvarchar", - "ifx_close", - "ifx_connect", - "ifx_copy_blob", - "ifx_create_blob", - "ifx_create_char", - "ifx_do", - "ifx_error", - "ifx_errormsg", - "ifx_fetch_row", - "ifx_fieldproperties", - "ifx_fieldtypes", - "ifx_free_blob", - "ifx_free_char", - "ifx_free_result", - "ifx_get_blob", - "ifx_get_char", - "ifx_getsqlca", - "ifx_htmltbl_result", - "ifx_nullformat", - "ifx_num_fields", - "ifx_num_rows", - "ifx_pconnect", - "ifx_prepare", - "ifx_query", - "ifx_textasvarchar", - "ifx_update_blob", - "ifx_update_char", - "ifxus_close_slob", - "ifxus_create_slob", - "ifxus_free_slob", - "ifxus_open_slob", - "ifxus_read_slob", - "ifxus_seek_slob", - "ifxus_tell_slob", - "ifxus_write_slob", - "ignore_user_abort", - "iis_addserver", - "iis_getdirsecurity", - "iis_getscriptmap", - "iis_getserverbycomment", - "iis_getserverbypath", - "iis_getserverright", - "iis_getservicestate", - "iis_removeserver", - "iis_setappsettings", - "iis_setdirsecurity", - "iis_setscriptmap", - "iis_setserverright", - "iis_startserver", - "iis_startservice", - "iis_stopserver", - "iis_stopservice", - "image2wbmp", - "imagealphablending", - "imagearc", - "imagechar", - "imagecharup", - "imagecolorallocate", - "imagecolorat", - "imagecolorclosest", - "imagecolorclosestalpha", - "imagecolorclosesthwb", - "imagecolordeallocate", - "imagecolorexact", - "imagecolorexactalpha", - "imagecolorresolve", - "imagecolorresolvealpha", - "imagecolorset", - "imagecolorsforindex", - "imagecolorstotal", - "imagecolortransparent", - "imagecopy", - "imagecopymerge", - "imagecopymergegray", - "imagecopyresampled", - "imagecopyresized", - "imagecreate", - "imagecreatefromgif", - "imagecreatefromjpeg", - "imagecreatefrompng", - "imagecreatefromstring", - "imagecreatefromwbmp", - "imagecreatefromxbm", - "imagecreatefromxpm", - "imagecreatetruecolor", - "imagedashedline", - "imagedestroy", - "imageellipse", - "imagefill", - "imagefilledarc", - "imagefilledellipse", - "imagefilledpolygon", - "imagefilledrectangle", - "imagefilltoborder", - "imagefontheight", - "imagefontwidth", - "imagegammacorrect", - "imagegif", - "imageinterlace", - "imagejpeg", - "imageline", - "imageloadfont", - "imagepalettecopy", - "imagepng", - "imagepolygon", - "imagepsbbox", - "imagepscopyfont", - "imagepsencodefont", - "imagepsextendfont", - "imagepsfreefont", - "imagepsloadfont", - "imagepsslantfont", - "imagepstext", - "imagerectangle", - "imagesetbrush", - "imagesetpixel", - "imagesetstyle", - "imagesetthickness", - "imagesettile", - "imagestring", - "imagestringup", - "imagesx", - "imagesy", - "imagetruecolortopalette", - "imagettfbbox", - "imagettftext", - "imagetypes", - "imagewbmp", - "imap_8bit", - "imap_alerts", - "imap_append", - "imap_base64", - "imap_binary", - "imap_body", - "imap_bodystruct", - "imap_check", - "imap_clearflag_full", - "imap_close", - "imap_create", - "imap_createmailbox", - "imap_delete", - "imap_deletemailbox", - "imap_errors", - "imap_expunge", - "imap_fetch_overview", - "imap_fetchbody", - "imap_fetchheader", - "imap_fetchstructure", - "imap_fetchtext", - "imap_get_quota", - "imap_getmailboxes", - "imap_getsubscribed", - "imap_header", - "imap_headerinfo", - "imap_headers", - "imap_last_error", - "imap_list", - "imap_listmailbox", - "imap_listsubscribed", - "imap_lsub", - "imap_mail", - "imap_mail", - "imap_mail_compose", - "imap_mail_copy", - "imap_mail_move", - "imap_mailboxmsginfo", - "imap_mime_header_decode", - "imap_msgno", - "imap_num_msg", - "imap_num_recent", - "imap_open", - "imap_ping", - "imap_popen", - "imap_qprint", - "imap_rename", - "imap_renamemailbox", - "imap_reopen", - "imap_rfc822_parse_adrlist", - "imap_rfc822_parse_headers", - "imap_rfc822_write_address", - "imap_scan", - "imap_scanmailbox", - "imap_search", - "imap_set_quota", - "imap_setflag_full", - "imap_sort", - "imap_status", - "imap_subscribe", - "imap_uid", - "imap_undelete", - "imap_unsubscribe", - "imap_utf7_decode", - "imap_utf7_encode", - "imap_utf8", - "implode", - "in_array", - "ingres_autocommit", - "ingres_close", - "ingres_commit", - "ingres_connect", - "ingres_fetch_array", - "ingres_fetch_object", - "ingres_fetch_row", - "ingres_field_length", - "ingres_field_name", - "ingres_field_nullable", - "ingres_field_precision", - "ingres_field_scale", - "ingres_field_type", - "ingres_num_fields", - "ingres_num_rows", - "ingres_pconnect", - "ingres_query", - "ingres_rollback", - "ini_alter", - "ini_get", - "ini_restore", - "ini_set", - "intval", - "ip2long", - "iptcembed", - "iptcparse", - "ircg_channel_mode", - "ircg_disconnect", - "ircg_html_encode", - "ircg_ignore_add", - "ircg_ignore_del", - "ircg_is_conn_alive", - "ircg_join", - "ircg_kick", - "ircg_lookup_format_messages", - "ircg_msg", - "ircg_nick", - "ircg_nickname_escape", - "ircg_nickname_unescape", - "ircg_notice", - "ircg_part", - "ircg_pconnect", - "ircg_register_format_messages", - "ircg_set_current", - "ircg_topic", - "ircg_whois", - "is_array", - "is_bool", - "is_dir", - "is_double", - "is_executable", - "is_file", - "is_float", - "is_int", - "is_integer", - "is_link", - "is_long", - "is_null", - "is_numeric", - "is_object", - "is_readable", - "is_real", - "is_resource", - "is_scalar", - "is_string", - "is_subclass_of", - "is_uploaded_file", - "is_writable", - "is_writeable", - "java_last_exception_clear", - "java_last_exception_get", - "jddayofweek", - "jdmonthname", - "jdtofrench", - "jdtogregorian", - "jdtojewish", - "jdtojulian", - "jdtounix", - "jewishtojd", - "join", - "jpeg2wbmp", - "juliantojd", - "key", - "krsort", - "ksort", - "labelframe", - "labelframe", - "lcg_value", - "ldap_8859_to_t61", - "ldap_add", - "ldap_bind", - "ldap_close", - "ldap_compare", - "ldap_connect", - "ldap_count_entries", - "ldap_delete", - "ldap_dn2ufn", - "ldap_err2str", - "ldap_errno", - "ldap_error", - "ldap_explode_dn", - "ldap_first_attribute", - "ldap_first_entry", - "ldap_first_reference", - "ldap_free_result", - "ldap_get_attributes", - "ldap_get_dn", - "ldap_get_entries", - "ldap_get_option", - "ldap_get_values", - "ldap_get_values_len", - "ldap_list", - "ldap_mod_add", - "ldap_mod_del", - "ldap_mod_replace", - "ldap_modify", - "ldap_next_attribute", - "ldap_next_entry", - "ldap_next_reference", - "ldap_parse_reference", - "ldap_parse_result", - "ldap_read", - "ldap_rename", - "ldap_search", - "ldap_set_option", - "ldap_t61_to_8859", - "ldap_unbind", - "leak", - "levenshtein", - "link", - "link", - "linkinfo", - "linkinfo", - "listen", - "localeconv", - "localtime", - "log", - "log10", - "long2ip", - "lstat", - "ltrim", - "magic_quotes_runtime", - "mail", - "mail", - "max", - "mcal_append_event", - "mcal_close", - "mcal_create_calendar", - "mcal_date_compare", - "mcal_date_valid", - "mcal_day_of_week", - "mcal_day_of_year", - "mcal_days_in_month", - "mcal_delete_calendar", - "mcal_delete_event", - "mcal_event_add_attribute", - "mcal_event_init", - "mcal_event_set_alarm", - "mcal_event_set_category", - "mcal_event_set_class", - "mcal_event_set_description", - "mcal_event_set_end", - "mcal_event_set_recur_daily", - "mcal_event_set_recur_monthly_mday", - "mcal_event_set_recur_monthly_wday", - "mcal_event_set_recur_none", - "mcal_event_set_recur_weekly", - "mcal_event_set_recur_yearly", - "mcal_event_set_start", - "mcal_event_set_title", - "mcal_fetch_current_stream_event", - "mcal_fetch_event", - "mcal_is_leap_year", - "mcal_list_alarms", - "mcal_list_events", - "mcal_next_recurrence", - "mcal_open", - "mcal_popen", - "mcal_rename_calendar", - "mcal_reopen", - "mcal_snooze", - "mcal_store_event", - "mcal_time_valid", - "mcal_week_of_year", - "mcrypt_cbc", - "mcrypt_cfb", - "mcrypt_create_iv", - "mcrypt_decrypt", - "mcrypt_ecb", - "mcrypt_enc_get_algorithms_name", - "mcrypt_enc_get_block_size", - "mcrypt_enc_get_iv_size", - "mcrypt_enc_get_key_size", - "mcrypt_enc_get_modes_name", - "mcrypt_enc_get_supported_key_sizes", - "mcrypt_enc_is_block_algorithm", - "mcrypt_enc_is_block_algorithm_mode", - "mcrypt_enc_is_block_mode", - "mcrypt_enc_self_test", - "mcrypt_encrypt", - "mcrypt_generic", - "mcrypt_generic_end", - "mcrypt_generic_init", - "mcrypt_get_block_size", - "mcrypt_get_cipher_name", - "mcrypt_get_iv_size", - "mcrypt_get_key_size", - "mcrypt_list_algorithms", - "mcrypt_list_modes", - "mcrypt_module_close", - "mcrypt_module_get_algo_block_size", - "mcrypt_module_get_algo_key_size", - "mcrypt_module_get_supported_key_sizes", - "mcrypt_module_is_block_algorithm", - "mcrypt_module_is_block_algorithm_mode", - "mcrypt_module_is_block_mode", - "mcrypt_module_open", - "mcrypt_module_self_test", - "mcrypt_ofb", - "md5", - "mdecrypt_generic", - "metaphone", - "method_exists", - "mhash", - "mhash_count", - "mhash_get_block_size", - "mhash_get_hash_name", - "mhash_keygen_s2k", - "microtime", - "min", - "ming_setcubicthreshold", - "ming_setscale", - "mkdir", - "mktime", - "move", - "move_uploaded_file", - "movepen", - "movepento", - "moveto", - "moveto", - "moveto", - "msql", - "msql_affected_rows", - "msql_close", - "msql_connect", - "msql_create_db", - "msql_createdb", - "msql_data_seek", - "msql_db_query", - "msql_dbname", - "msql_drop_db", - "msql_dropdb", - "msql_error", - "msql_fetch_array", - "msql_fetch_field", - "msql_fetch_object", - "msql_fetch_row", - "msql_field_flags", - "msql_field_len", - "msql_field_name", - "msql_field_seek", - "msql_field_table", - "msql_field_type", - "msql_fieldflags", - "msql_fieldlen", - "msql_fieldname", - "msql_fieldtable", - "msql_fieldtype", - "msql_free_result", - "msql_freeresult", - "msql_list_dbs", - "msql_list_fields", - "msql_list_tables", - "msql_listdbs", - "msql_listfields", - "msql_listtables", - "msql_num_fields", - "msql_num_rows", - "msql_numfields", - "msql_numrows", - "msql_pconnect", - "msql_query", - "msql_regcase", - "msql_result", - "msql_select_db", - "msql_selectdb", - "msql_tablename", - "mssql_affected_rows", - "mssql_affected_rows", - "mssql_close", - "mssql_close", - "mssql_close", - "mssql_connect", - "mssql_connect", - "mssql_connect", - "mssql_data_seek", - "mssql_data_seek", - "mssql_data_seek", - "mssql_fetch_array", - "mssql_fetch_array", - "mssql_fetch_array", - "mssql_fetch_batch", - "mssql_fetch_field", - "mssql_fetch_field", - "mssql_fetch_field", - "mssql_fetch_object", - "mssql_fetch_object", - "mssql_fetch_object", - "mssql_fetch_row", - "mssql_fetch_row", - "mssql_fetch_row", - "mssql_field_length", - "mssql_field_name", - "mssql_field_seek", - "mssql_field_seek", - "mssql_field_seek", - "mssql_field_type", - "mssql_free_result", - "mssql_free_result", - "mssql_free_result", - "mssql_get_last_message", - "mssql_get_last_message", - "mssql_get_last_message", - "mssql_min_client_severity", - "mssql_min_error_severity", - "mssql_min_error_severity", - "mssql_min_message_severity", - "mssql_min_message_severity", - "mssql_min_server_severity", - "mssql_next_result", - "mssql_num_fields", - "mssql_num_fields", - "mssql_num_fields", - "mssql_num_rows", - "mssql_num_rows", - "mssql_num_rows", - "mssql_pconnect", - "mssql_pconnect", - "mssql_pconnect", - "mssql_query", - "mssql_query", - "mssql_query", - "mssql_result", - "mssql_result", - "mssql_result", - "mssql_rows_affected", - "mssql_select_db", - "mssql_select_db", - "mssql_select_db", - "mt_getrandmax", - "mt_rand", - "mt_srand", - "multcolor", - "muscat_close", - "muscat_get", - "muscat_give", - "muscat_setup", - "muscat_setup_net", - "mysql", - "mysql_affected_rows", - "mysql_close", - "mysql_connect", - "mysql_create_db", - "mysql_createdb", - "mysql_data_seek", - "mysql_db_name", - "mysql_db_query", - "mysql_dbname", - "mysql_drop_db", - "mysql_dropdb", - "mysql_errno", - "mysql_error", - "mysql_escape_string", - "mysql_fetch_array", - "mysql_fetch_assoc", - "mysql_fetch_field", - "mysql_fetch_lengths", - "mysql_fetch_object", - "mysql_fetch_row", - "mysql_field_flags", - "mysql_field_len", - "mysql_field_name", - "mysql_field_seek", - "mysql_field_table", - "mysql_field_type", - "mysql_fieldflags", - "mysql_fieldlen", - "mysql_fieldname", - "mysql_fieldtable", - "mysql_fieldtype", - "mysql_free_result", - "mysql_freeresult", - "mysql_get_client_info", - "mysql_get_host_info", - "mysql_get_proto_info", - "mysql_get_server_info", - "mysql_insert_id", - "mysql_list_dbs", - "mysql_list_fields", - "mysql_list_tables", - "mysql_listdbs", - "mysql_listfields", - "mysql_listtables", - "mysql_num_fields", - "mysql_num_rows", - "mysql_numfields", - "mysql_numrows", - "mysql_pconnect", - "mysql_query", - "mysql_result", - "mysql_select_db", - "mysql_selectdb", - "mysql_tablename", - "mysql_unbuffered_query", - "natcasesort", - "natsort", - "new_xmldoc", - "next", - "nextframe", - "nextframe", - "nl2br", - "notes_body", - "notes_copy_db", - "notes_create_db", - "notes_create_note", - "notes_drop_db", - "notes_find_note", - "notes_header_info", - "notes_list_msgs", - "notes_mark_read", - "notes_mark_unread", - "notes_nav_create", - "notes_search", - "notes_unread", - "notes_version", - "number_format", - "ob_end_clean", - "ob_end_flush", - "ob_get_contents", - "ob_get_length", - "ob_gzhandler", - "ob_iconv_handler", - "ob_implicit_flush", - "ob_start", - "ocibindbyname", - "ocicancel", - "ocicollappend", - "ocicollassign", - "ocicollassignelem", - "ocicolldateappendelem", - "ocicolldateassignelem", - "ocicolldategetelem", - "ocicollgetelem", - "ocicollmax", - "ocicollsize", - "ocicolltrim", - "ocicolumnisnull", - "ocicolumnname", - "ocicolumnprecision", - "ocicolumnscale", - "ocicolumnsize", - "ocicolumntype", - "ocicolumntyperaw", - "ocicommit", - "ocidefinebyname", - "ocierror", - "ociexecute", - "ocifetch", - "ocifetchinto", - "ocifetchstatement", - "ocifreecoll", - "ocifreecursor", - "ocifreedesc", - "ocifreestatement", - "ociinternaldebug", - "ociloadlob", - "ocilogoff", - "ocilogon", - "ocinewcollection", - "ocinewcursor", - "ocinewdescriptor", - "ocinlogon", - "ocinumcols", - "ociparse", - "ociplogon", - "ociresult", - "ocirollback", - "ocirowcount", - "ocisavelob", - "ocisavelobfile", - "ociserverversion", - "ocisetprefetch", - "ocistatementtype", - "ociwritelobtofile", - "octdec", - "odbc_autocommit", - "odbc_binmode", - "odbc_close", - "odbc_close_all", - "odbc_columnprivileges", - "odbc_columns", - "odbc_commit", - "odbc_connect", - "odbc_cursor", - "odbc_do", - "odbc_error", - "odbc_errormsg", - "odbc_exec", - "odbc_execute", - "odbc_fetch_array", - "odbc_fetch_into", - "odbc_fetch_object", - "odbc_fetch_row", - "odbc_field_len", - "odbc_field_name", - "odbc_field_num", - "odbc_field_precision", - "odbc_field_scale", - "odbc_field_type", - "odbc_foreignkeys", - "odbc_free_result", - "odbc_gettypeinfo", - "odbc_longreadlen", - "odbc_next_result", - "odbc_num_fields", - "odbc_num_rows", - "odbc_pconnect", - "odbc_prepare", - "odbc_primarykeys", - "odbc_procedurecolumns", - "odbc_procedures", - "odbc_result", - "odbc_result_all", - "odbc_rollback", - "odbc_setoption", - "odbc_specialcolumns", - "odbc_statistics", - "odbc_tableprivileges", - "odbc_tables", - "open_listen_sock", - "opendir", - "openlog", - "openssl_error_string", - "openssl_free_key", - "openssl_get_privatekey", - "openssl_get_publickey", - "openssl_open", - "openssl_pkcs7_decrypt", - "openssl_pkcs7_encrypt", - "openssl_pkcs7_sign", - "openssl_pkcs7_verify", - "openssl_seal", - "openssl_sign", - "openssl_verify", - "openssl_x509_checkpurpose", - "openssl_x509_free", - "openssl_x509_parse", - "openssl_x509_read", - "ora_bind", - "ora_close", - "ora_columnname", - "ora_columnsize", - "ora_columntype", - "ora_commit", - "ora_commitoff", - "ora_commiton", - "ora_do", - "ora_error", - "ora_errorcode", - "ora_exec", - "ora_fetch", - "ora_fetch_into", - "ora_getcolumn", - "ora_logoff", - "ora_logon", - "ora_numcols", - "ora_numrows", - "ora_open", - "ora_parse", - "ora_plogon", - "ora_rollback", - "orbit_caught_exception", - "orbit_exception_id", - "orbit_exception_value", - "orbit_get_repository_id", - "orbit_load_idl", - "ord", - "output", - "ovrimos_close", - "ovrimos_close_all", - "ovrimos_commit", - "ovrimos_connect", - "ovrimos_cursor", - "ovrimos_exec", - "ovrimos_execute", - "ovrimos_fetch_into", - "ovrimos_fetch_row", - "ovrimos_field_len", - "ovrimos_field_name", - "ovrimos_field_num", - "ovrimos_field_type", - "ovrimos_free_result", - "ovrimos_longreadlen", - "ovrimos_num_fields", - "ovrimos_num_rows", - "ovrimos_prepare", - "ovrimos_result", - "ovrimos_result_all", - "ovrimos_rollback", - "pack", - "parse_ini_file", - "parse_str", - "parse_url", - "passthru", - "pathinfo", - "pclose", - "pdf_add_annotation", - "pdf_add_bookmark", - "pdf_add_launchlink", - "pdf_add_locallink", - "pdf_add_note", - "pdf_add_outline", - "pdf_add_pdflink", - "pdf_add_thumbnail", - "pdf_add_weblink", - "pdf_arc", - "pdf_arcn", - "pdf_attach_file", - "pdf_begin_page", - "pdf_begin_pattern", - "pdf_begin_template", - "pdf_circle", - "pdf_clip", - "pdf_close", - "pdf_close_image", - "pdf_close_pdi", - "pdf_close_pdi_page", - "pdf_closepath", - "pdf_closepath_fill_stroke", - "pdf_closepath_stroke", - "pdf_concat", - "pdf_continue_text", - "pdf_curveto", - "pdf_delete", - "pdf_end_page", - "pdf_end_pattern", - "pdf_end_template", - "pdf_endpath", - "pdf_fill", - "pdf_fill_stroke", - "pdf_findfont", - "pdf_get_buffer", - "pdf_get_font", - "pdf_get_fontname", - "pdf_get_fontsize", - "pdf_get_image_height", - "pdf_get_image_width", - "pdf_get_parameter", - "pdf_get_pdi_parameter", - "pdf_get_pdi_value", - "pdf_get_value", - "pdf_initgraphics", - "pdf_lineto", - "pdf_makespotcolor", - "pdf_moveto", - "pdf_new", - "pdf_open", - "pdf_open_ccitt", - "pdf_open_file", - "pdf_open_gif", - "pdf_open_image", - "pdf_open_image_file", - "pdf_open_jpeg", - "pdf_open_memory_image", - "pdf_open_pdi", - "pdf_open_pdi_page", - "pdf_open_png", - "pdf_open_tiff", - "pdf_place_image", - "pdf_place_pdi_page", - "pdf_rect", - "pdf_restore", - "pdf_rotate", - "pdf_save", - "pdf_scale", - "pdf_set_border_color", - "pdf_set_border_dash", - "pdf_set_border_style", - "pdf_set_char_spacing", - "pdf_set_duration", - "pdf_set_font", - "pdf_set_horiz_scaling", - "pdf_set_info", - "pdf_set_info_author", - "pdf_set_info_creator", - "pdf_set_info_keywords", - "pdf_set_info_subject", - "pdf_set_info_title", - "pdf_set_leading", - "pdf_set_parameter", - "pdf_set_text_pos", - "pdf_set_text_rendering", - "pdf_set_text_rise", - "pdf_set_transition", - "pdf_set_value", - "pdf_set_word_spacing", - "pdf_setcolor", - "pdf_setdash", - "pdf_setflat", - "pdf_setfont", - "pdf_setgray", - "pdf_setgray_fill", - "pdf_setgray_stroke", - "pdf_setlinecap", - "pdf_setlinejoin", - "pdf_setlinewidth", - "pdf_setmatrix", - "pdf_setmiterlimit", - "pdf_setpolydash", - "pdf_setrgbcolor", - "pdf_setrgbcolor_fill", - "pdf_setrgbcolor_stroke", - "pdf_show", - "pdf_show_boxed", - "pdf_show_xy", - "pdf_skew", - "pdf_stringwidth", - "pdf_stroke", - "pdf_translate", - "pfpro_cleanup", - "pfpro_init", - "pfpro_process", - "pfpro_process_raw", - "pfpro_version", - "pfsockopen", - "pg_client_encoding", - "pg_clientencoding", - "pg_close", - "pg_cmdtuples", - "pg_connect", - "pg_dbname", - "pg_end_copy", - "pg_errormessage", - "pg_exec", - "pg_fetch_array", - "pg_fetch_object", - "pg_fetch_row", - "pg_fieldisnull", - "pg_fieldname", - "pg_fieldnum", - "pg_fieldprtlen", - "pg_fieldsize", - "pg_fieldtype", - "pg_freeresult", - "pg_getlastoid", - "pg_host", - "pg_loclose", - "pg_locreate", - "pg_loexport", - "pg_loimport", - "pg_loopen", - "pg_loread", - "pg_loreadall", - "pg_lounlink", - "pg_lowrite", - "pg_numfields", - "pg_numrows", - "pg_options", - "pg_pconnect", - "pg_port", - "pg_put_line", - "pg_result", - "pg_set_client_encoding", - "pg_setclientencoding", - "pg_trace", - "pg_tty", - "pg_untrace", - "php_logo_guid", - "php_sapi_name", - "php_uname", - "phpcredits", - "phpinfo", - "phpversion", - "pi", - "png2wbmp", - "popen", - "pos", - "posix_ctermid", - "posix_getcwd", - "posix_getegid", - "posix_geteuid", - "posix_getgid", - "posix_getgrgid", - "posix_getgrnam", - "posix_getgroups", - "posix_getlogin", - "posix_getpgid", - "posix_getpgrp", - "posix_getpid", - "posix_getppid", - "posix_getpwnam", - "posix_getpwuid", - "posix_getrlimit", - "posix_getsid", - "posix_getuid", - "posix_isatty", - "posix_kill", - "posix_mkfifo", - "posix_setegid", - "posix_seteuid", - "posix_setgid", - "posix_setpgid", - "posix_setsid", - "posix_setuid", - "posix_times", - "posix_ttyname", - "posix_uname", - "pow", - "preg_grep", - "preg_match", - "preg_match_all", - "preg_quote", - "preg_replace", - "preg_replace_callback", - "preg_split", - "prev", - "print_r", - "printer_abort", - "printer_close", - "printer_create_brush", - "printer_create_dc", - "printer_create_font", - "printer_create_pen", - "printer_delete_brush", - "printer_delete_dc", - "printer_delete_font", - "printer_delete_pen", - "printer_draw_bmp", - "printer_draw_chord", - "printer_draw_elipse", - "printer_draw_line", - "printer_draw_pie", - "printer_draw_rectangle", - "printer_draw_roundrect", - "printer_draw_text", - "printer_end_doc", - "printer_end_page", - "printer_get_option", - "printer_list", - "printer_logical_fontheight", - "printer_open", - "printer_select_brush", - "printer_select_font", - "printer_select_pen", - "printer_set_option", - "printer_start_doc", - "printer_start_page", - "printer_write", - "printf", - "pspell_add_to_personal", - "pspell_add_to_session", - "pspell_check", - "pspell_clear_session", - "pspell_config_create", - "pspell_config_ignore", - "pspell_config_mode", - "pspell_config_personal", - "pspell_config_repl", - "pspell_config_runtogether", - "pspell_config_save_repl", - "pspell_new", - "pspell_new_config", - "pspell_new_personal", - "pspell_save_wordlist", - "pspell_store_replacement", - "pspell_suggest", - "putenv", - "putenv", - "qdom_error", - "qdom_tree", - "quoted_printable_decode", - "quotemeta", - "rad2deg", - "rand", - "range", - "rawurldecode", - "rawurlencode", - "read", - "read_exif_data", - "readdir", - "readfile", - "readgzfile", - "readline", - "readline_add_history", - "readline_clear_history", - "readline_completion_function", - "readline_info", - "readline_list_history", - "readline_list_history", - "readline_read_history", - "readline_write_history", - "readlink", - "readlink", - "readv", - "realpath", - "realpath", - "recode", - "recode_file", - "recode_string", - "recv", - "recvfrom", - "recvmsg", - "register_shutdown_function", - "register_tick_function", - "remove", - "remove", - "rename", - "reset", - "restore_error_handler", - "rewind", - "rewinddir", - "rmdir", - "rotate", - "rotateto", - "rotateto", - "round", - "rsort", - "rtrim", - "satellite_caught_exception", - "satellite_exception_id", - "satellite_exception_value", - "satellite_get_repository_id", - "satellite_load_idl", - "save", - "savetofile", - "scale", - "scaleto", - "scaleto", - "select", - "sem_acquire", - "sem_get", - "sem_release", - "send", - "sendmsg", - "sendto", - "serialize", - "session_cache_limiter", - "session_decode", - "session_destroy", - "session_encode", - "session_get_cookie_params", - "session_id", - "session_is_registered", - "session_module_name", - "session_name", - "session_register", - "session_save_path", - "session_set_cookie_params", - "session_set_save_handler", - "session_start", - "session_unregister", - "session_unset", - "session_write_close", - "set_content", - "set_error_handler", - "set_file_buffer", - "set_iovec", - "set_magic_quotes_runtime", - "set_nonblock", - "set_socket_blocking", - "set_time_limit", - "setaction", - "setbackground", - "setbounds", - "setcolor", - "setcolor", - "setcookie", - "setdepth", - "setdimension", - "setdown", - "setfont", - "setfont", - "setframes", - "setframes", - "setheight", - "setheight", - "sethit", - "setindentation", - "setleftfill", - "setleftmargin", - "setline", - "setlinespacing", - "setlocale", - "setmargins", - "setmatrix", - "setname", - "setname", - "setover", - "setrate", - "setratio", - "setrightfill", - "setrightmargin", - "setsockopt", - "setspacing", - "settype", - "setup", - "shell_exec", - "shm_attach", - "shm_detach", - "shm_get_var", - "shm_put_var", - "shm_remove", - "shm_remove_var", - "shmop_close", - "shmop_delete", - "shmop_open", - "shmop_read", - "shmop_size", - "shmop_write", - "show_source", - "shuffle", - "shutdown", - "signal", - "similar_text", - "sin", - "sizeof", - "skewx", - "skewxto", - "skewxto", - "skewy", - "skewyto", - "skewyto", - "sleep", - "snmp_get_quick_print", - "snmp_set_quick_print", - "snmpget", - "snmpget", - "snmprealwalk", - "snmpset", - "snmpwalk", - "snmpwalk", - "snmpwalkoid", - "socket", - "socket_get_status", - "socket_set_blocking", - "socket_set_timeout", - "socket_set_timeout", - "socketpair", - "sort", - "soundex", - "split", - "spliti", - "sprintf", - "sql_regcase", - "sqrt", - "srand", - "sscanf", - "stat", - "str_pad", - "str_repeat", - "str_replace", - "strcasecmp", - "strchr", - "strcmp", - "strcoll", - "strcoll", - "strcspn", - "streammp3", - "strerror", - "strftime", - "strftime", - "strip_tags", - "stripcslashes", - "stripslashes", - "stristr", - "strlen", - "strnatcasecmp", - "strnatcmp", - "strncasecmp", - "strncmp", - "strpos", - "strrchr", - "strrev", - "strrpos", - "strspn", - "strstr", - "strtok", - "strtolower", - "strtotime", - "strtoupper", - "strtr", - "strval", - "substr", - "substr_count", - "substr_replace", - "swf_actiongeturl", - "swf_actiongotoframe", - "swf_actiongotolabel", - "swf_actionnextframe", - "swf_actionplay", - "swf_actionprevframe", - "swf_actionsettarget", - "swf_actionstop", - "swf_actiontogglequality", - "swf_actionwaitforframe", - "swf_addbuttonrecord", - "swf_addcolor", - "swf_closefile", - "swf_definebitmap", - "swf_definefont", - "swf_defineline", - "swf_definepoly", - "swf_definerect", - "swf_definetext", - "swf_endbutton", - "swf_enddoaction", - "swf_endshape", - "swf_endsymbol", - "swf_fontsize", - "swf_fontslant", - "swf_fonttracking", - "swf_getbitmapinfo", - "swf_getfontinfo", - "swf_getframe", - "swf_labelframe", - "swf_lookat", - "swf_modifyobject", - "swf_mulcolor", - "swf_nextid", - "swf_oncondition", - "swf_openfile", - "swf_ortho", - "swf_ortho2", - "swf_perspective", - "swf_placeobject", - "swf_polarview", - "swf_popmatrix", - "swf_posround", - "swf_pushmatrix", - "swf_removeobject", - "swf_rotate", - "swf_scale", - "swf_setfont", - "swf_setframe", - "swf_shapearc", - "swf_shapecurveto", - "swf_shapecurveto3", - "swf_shapefillbitmapclip", - "swf_shapefillbitmaptile", - "swf_shapefilloff", - "swf_shapefillsolid", - "swf_shapelinesolid", - "swf_shapelineto", - "swf_shapemoveto", - "swf_showframe", - "swf_startbutton", - "swf_startdoaction", - "swf_startshape", - "swf_startsymbol", - "swf_textwidth", - "swf_translate", - "swf_viewport", - "swfaction", - "swfbitmap", - "swfbutton", - "swfbutton_keypress", - "swffill", - "swffont", - "swfgradient", - "swfmorph", - "swfmovie", - "swfshape", - "swfsprite", - "swftext", - "swftextfield", - "sybase_affected_rows", - "sybase_affected_rows", - "sybase_close", - "sybase_close", - "sybase_connect", - "sybase_connect", - "sybase_data_seek", - "sybase_data_seek", - "sybase_fetch_array", - "sybase_fetch_array", - "sybase_fetch_field", - "sybase_fetch_field", - "sybase_fetch_object", - "sybase_fetch_object", - "sybase_fetch_row", - "sybase_fetch_row", - "sybase_field_seek", - "sybase_field_seek", - "sybase_free_result", - "sybase_free_result", - "sybase_get_last_message", - "sybase_get_last_message", - "sybase_min_client_severity", - "sybase_min_error_severity", - "sybase_min_message_severity", - "sybase_min_server_severity", - "sybase_num_fields", - "sybase_num_fields", - "sybase_num_rows", - "sybase_num_rows", - "sybase_pconnect", - "sybase_pconnect", - "sybase_query", - "sybase_query", - "sybase_result", - "sybase_result", - "sybase_select_db", - "sybase_select_db", - "symlink", - "symlink", - "syslog", - "system", - "tan", - "tempnam", - "textdomain", - "time", - "tmpfile", - "touch", - "trigger_error", - "trim", - "uasort", - "ucfirst", - "ucwords", - "udm_add_search_limit", - "udm_alloc_agent", - "udm_api_version", - "udm_clear_search_limits", - "udm_errno", - "udm_error", - "udm_find", - "udm_free_agent", - "udm_free_ispell_data", - "udm_free_res", - "udm_get_doc_count", - "udm_get_res_field", - "udm_get_res_param", - "udm_load_ispell_data", - "udm_set_agent_param", - "uksort", - "umask", - "uniqid", - "uniqid", - "unixtojd", - "unlink", - "unpack", - "unregister_tick_function", - "unserialize", - "urldecode", - "urlencode", - "user_error", - "usleep", - "usort", - "utf8_decode", - "utf8_encode", - "var_dump", - "velocis_autocommit", - "velocis_close", - "velocis_commit", - "velocis_connect", - "velocis_exec", - "velocis_fetch", - "velocis_fieldname", - "velocis_fieldnum", - "velocis_freeresult", - "velocis_off_autocommit", - "velocis_result", - "velocis_rollback", - "virtual", - "vpopmail_add_alias_domain", - "vpopmail_add_alias_domain_ex", - "vpopmail_add_domain", - "vpopmail_add_domain_ex", - "vpopmail_add_user", - "vpopmail_auth_user", - "vpopmail_del_domain", - "vpopmail_del_domain_ex", - "vpopmail_del_user", - "vpopmail_error", - "vpopmail_passwd", - "vpopmail_set_user_quota", - "wddx_add_vars", - "wddx_deserialize", - "wddx_packet_end", - "wddx_packet_start", - "wddx_serialize_value", - "wddx_serialize_vars", - "wordwrap", - "write", - "writev", - "xml_error_string", - "xml_get_current_byte_index", - "xml_get_current_column_number", - "xml_get_current_line_number", - "xml_get_error_code", - "xml_parse", - "xml_parse_into_struct", - "xml_parser_create", - "xml_parser_create_ns", - "xml_parser_free", - "xml_parser_get_option", - "xml_parser_set_option", - "xml_set_character_data_handler", - "xml_set_default_handler", - "xml_set_element_handler", - "xml_set_end_namespace_decl_handler", - "xml_set_external_entity_ref_handler", - "xml_set_notation_decl_handler", - "xml_set_object", - "xml_set_processing_instruction_handler", - "xml_set_start_namespace_decl_handler", - "xml_set_unparsed_entity_decl_handler", - "xmldoc", - "xmldocfile", - "xmltree", - "xpath_eval", - "xpath_eval_expression", - "xptr_eval", - "xslt_closelog", - "xslt_create", - "xslt_errno", - "xslt_error", - "xslt_fetch_result", - "xslt_free", - "xslt_openlog", - "xslt_output_begintransform", - "xslt_output_endtransform", - "xslt_process", - "xslt_run", - "xslt_set_base", - "xslt_set_encoding", - "xslt_set_error_handler", - "xslt_set_sax_handler", - "xslt_set_scheme_handler", - "xslt_transform", - "yaz_addinfo", - "yaz_ccl_conf", - "yaz_ccl_parse", - "yaz_close", - "yaz_connect", - "yaz_database", - "yaz_element", - "yaz_errno", - "yaz_error", - "yaz_hits", - "yaz_itemorder", - "yaz_present", - "yaz_range", - "yaz_record", - "yaz_scan", - "yaz_scan_result", - "yaz_search", - "yaz_syntax", - "yaz_wait", - "yp_all", - "yp_cat", - "yp_err_string", - "yp_errno", - "yp_first", - "yp_get_default_domain", - "yp_master", - "yp_match", - "yp_next", - "yp_order", - "zend_logo_guid", - "zend_test_func", - "zend_version", - "zzip_close", - "zzip_closedir", - "zzip_entry_compressedsize", - "zzip_entry_compressionmethod", - "zzip_entry_filesize", - "zzip_entry_name", - "zzip_open", - "zzip_opendir", - "zzip_read", - "zzip_readdir" }; + /** Token to return for braces */ + private final IToken fTokenBraces; + + /** Token to return for heredocs */ + private final IToken fTokenHeredoc; + + /** + * Creates a new operator rule. + * + * @param token + * Token to use for this rule + * @param tokenHeredoc + * TODO + */ + public OperatorRule(IToken token, IToken tokenBraces, + IToken tokenHeredoc) { + fToken = token; + fTokenBraces = tokenBraces; + fTokenHeredoc = tokenHeredoc; + } + + /** + * Is this character an operator character? + * + * @param character + * Character to determine whether it is an operator character + * @return true iff the character is an operator, + * false otherwise. + */ + public boolean isOperator(char character) { + for (int index = 0; index < PHP_OPERATORS.length; index++) { + if (PHP_OPERATORS[index] == character) + return true; + } + return false; + } + + /* + * @see org.eclipse.jface.text.rules.IRule#evaluate(org.eclipse.jface.text.rules.ICharacterScanner) + */ + public IToken evaluate(ICharacterScanner scanner) { + + int character = scanner.read(); + if (character == '{' || character == '}') { + return fTokenBraces; + } + if (isOperator((char) character)) { + int lastCharacter = character; + character = scanner.read(); + // the readHEREDOC(scanner) call doesn't work, if we have our + // own partitions for single quoted + // or double quoted strings: + // + // if (lastCharacter == '<' && character == '<') { + // int heredocCharacter = scanner.read(); + // if (heredocCharacter == '<') { + // // start of heredoc comment; + // if (readHEREDOC(scanner)) { + // return fTokenHeredoc; + // } + // } else { + // scanner.unread(); + // } + // } + if (!isOperator((char) character)) { + scanner.unread(); + return fToken; + } + if (checkPHPTag(scanner, lastCharacter, character)) { + return Token.UNDEFINED; + } + do { + lastCharacter = character; + character = scanner.read(); + if (checkPHPTag(scanner, lastCharacter, character)) { + return fToken; + } + if (character == ICharacterScanner.EOF) { + return fToken; + } + } while (isOperator((char) character)); + scanner.unread(); + return fToken; + } else { + scanner.unread(); + return Token.UNDEFINED; + } + } + + // private boolean readHEREDOC(ICharacterScanner scanner) { + // // search until heredoc ends + // int ch; + // StringBuffer buf = new StringBuffer(); + // char[] heredocIdent; + // + // ch = scanner.read(); + // if (!Scanner.isPHPIdentifierStart((char)ch)) { + // scanner.unread(); + // scanner.unread(); + // return false; + // } + // while (Scanner.isPHPIdentifierPart((char)ch)) { + // buf.append((char)ch); + // ch = scanner.read(); + // } + // if (ch==ICharacterScanner.EOF) { + // return true; + // } + // heredocIdent = buf.toString().toCharArray(); + // while (true) { + // ch = scanner.read(); + // if (ch==ICharacterScanner.EOF) { + // return true; + // } + // if (ch == '\n') { // heredoc could end after a newline + // int pos = 0; + // while (true) { + // if (pos == heredocIdent.length) { + // return true; + // } + // ch = scanner.read(); // ignore escaped character + // if (ch != heredocIdent[pos]) { + // break; + // } + // if (ch==ICharacterScanner.EOF) { + // return true; + // } + // pos++; + // } + // } + // } + // } + + /** + * Check if lastCharacter/character are a PHP start or end token ( <? + * ... ?> ) + * + * @param scanner + * @param lastCharacter + * @param character + * @return + */ + private boolean checkPHPTag(ICharacterScanner scanner, + int lastCharacter, int character) { + if (lastCharacter == '<' && character == '?') { + scanner.unread(); + scanner.unread(); + return true; + } else if (lastCharacter == '?' && character == '>') { + scanner.unread(); + scanner.unread(); + return true; + } + return false; + } + } + + protected class AccentStringRule implements IRule { + + /** Token to return for this rule */ + private final IToken fToken; + + public AccentStringRule(IToken token) { + fToken = token; + + } + + /* + * @see org.eclipse.jface.text.rules.IRule#evaluate(org.eclipse.jface.text.rules.ICharacterScanner) + */ + public IToken evaluate(ICharacterScanner scanner) { + + int character = scanner.read(); + + if (character == '`') { + + while (character != ICharacterScanner.EOF) { + character = scanner.read(); + if (character == '\\') { + character = scanner.read(); + } else if (character == '`') { + return fToken; + } + } + scanner.unread(); + return Token.UNDEFINED; + } else { + scanner.unread(); + return Token.UNDEFINED; + } + } + + } - private IToken variable; - private class PHPWordRule extends WordRule { - private StringBuffer fBuffer= new StringBuffer(); + private StringBuffer fBuffer = new StringBuffer(); + + protected Map fWordsIgnoreCase = new HashMap(); public PHPWordRule(IWordDetector detector) { super(detector, Token.UNDEFINED); @@ -2427,26 +263,103 @@ public class PHPCodeScanner extends RuleBasedScanner { super(detector, defaultToken); } + /** + * Adds a word and the token to be returned if it is detected. + * + * @param word + * the word this rule will search for, may not be + * null + * @param token + * the token to be returned if the word has been found, may + * not be null + */ + public void addWordIgnoreCase(String word, IToken token) { + Assert.isNotNull(word); + Assert.isNotNull(token); + + fWordsIgnoreCase.put(word, token); + } + public IToken evaluate(ICharacterScanner scanner) { int c = scanner.read(); - boolean isVariable = false; + boolean isVariable = false; + boolean isUnderscore = false; + String word; + if (c == '<') { + c = scanner.read(); + if (c != '?') { + scanner.unread(); + scanner.unread(); + return Token.UNDEFINED; + } else { + c = scanner.read(); + if (c == '=') { // ') { + return getToken(IPreferenceConstants.PHP_TAG); + } + scanner.unread(); + scanner.unread(); + return Token.UNDEFINED; + } if (fDetector.isWordStart((char) c)) { - if (c=='$') { - isVariable = true; - } - if (fColumn == UNDEFINED || (fColumn == scanner.getColumn() - 1)) { + if (c == '$') { + isVariable = true; + } + if (fColumn == UNDEFINED + || (fColumn == scanner.getColumn() - 1)) { fBuffer.setLength(0); - do { + fBuffer.append((char) c); + c = scanner.read(); + if (c == '_') { + isUnderscore = true; + } + while (c != ICharacterScanner.EOF + && fDetector.isWordPart((char) c)) { fBuffer.append((char) c); c = scanner.read(); - } while (c != scanner.EOF && fDetector.isWordPart((char) c)); + } scanner.unread(); - if (isVariable) { - return variable; - } - IToken token = (IToken) fWords.get(fBuffer.toString()); + if (isVariable) { + if (isUnderscore) { + return getToken(IPreferenceConstants.PHP_VARIABLE_DOLLAR); + } + return getToken(IPreferenceConstants.PHP_VARIABLE); + } + word = fBuffer.toString(); + IToken token = (IToken) fWords.get(word); + if (token != null) + return token; + + token = (IToken) fWordsIgnoreCase.get(word.toLowerCase()); if (token != null) return token; @@ -2462,58 +375,107 @@ public class PHPCodeScanner extends RuleBasedScanner { } } - private static String[] fgConstants = { "__LINE__", "__FILE__", "true", "false" }; - private TextAttribute fComment; - private TextAttribute fKeyword; - private TextAttribute fType; - private TextAttribute fString; - private PHPColorProvider fColorProvider; + // private PHPColorProvider fColorProvider; + + private static String[] fgTokenProperties = { + IPreferenceConstants.PHP_MULTILINE_COMMENT, + IPreferenceConstants.PHP_SINGLELINE_COMMENT, + IPreferenceConstants.PHP_TAG, + IPreferenceConstants.PHP_KEYWORD, + IPreferenceConstants.PHP_FUNCTIONNAME, + IPreferenceConstants.PHP_VARIABLE, + IPreferenceConstants.PHP_VARIABLE_DOLLAR, + IPreferenceConstants.PHP_STRING_DQ, + IPreferenceConstants.PHP_STRING_SQ, + IPreferenceConstants.PHP_TYPE, + IPreferenceConstants.PHP_CONSTANT, + IPreferenceConstants.PHP_DEFAULT, + IPreferenceConstants.PHP_OPERATOR, + IPreferenceConstants.PHP_BRACE_OPERATOR, + IPreferenceConstants.PHP_KEYWORD_RETURN }; /** - * Creates a Java code scanner + * Creates a PHP code scanner */ - public PHPCodeScanner(PHPColorProvider provider) { - - IToken keyword = new Token(new TextAttribute(provider.getColor(PHPColorProvider.KEYWORD))); - IToken type = new Token(new TextAttribute(provider.getColor(PHPColorProvider.TYPE))); - IToken string = new Token(new TextAttribute(provider.getColor(PHPColorProvider.STRING))); - IToken comment = new Token(new TextAttribute(provider.getColor(PHPColorProvider.SINGLE_LINE_COMMENT))); - IToken multi_comment = new Token(new TextAttribute(provider.getColor(PHPColorProvider.MULTI_LINE_COMMENT))); - IToken other = new Token(new TextAttribute(provider.getColor(PHPColorProvider.DEFAULT))); + // public PHPCodeScanner(JavaColorManager provider, IPreferenceStore store) + // { + public PHPCodeScanner(IColorManager manager, IPreferenceStore store) { + super(manager, store); + initialize(); + } - variable = new Token(new TextAttribute(provider.getColor(PHPColorProvider.VARIABLE))); + /* + * @see AbstractJavaScanner#getTokenProperties() + */ + protected String[] getTokenProperties() { + return fgTokenProperties; + } - + /* + * @see AbstractJavaScanner#createRules() + */ + protected List createRules() { List rules = new ArrayList(); - + Token token = getToken(IPreferenceConstants.PHP_SINGLELINE_COMMENT); // Add rule for single line comments. - rules.add(new EndOfLineRule("//", comment)); //$NON-NLS-1$ - // EndOfLineRule endOfLine = new EndOfLineRule("#", comment); - // endOfLine.setColumnConstraint(0); - rules.add(new EndOfLineRule("#", comment)); - + // rules.add(new EndOfLineRule("//", token)); //$NON-NLS-1$ + // rules.add(new EndOfLineRule("#", token)); //$NON-NLS-1$ // Add rule for strings and character constants. - rules.add(new SingleLineRule("\"", "\"", string, '\\')); //$NON-NLS-2$ //$NON-NLS-1$ - rules.add(new SingleLineRule("'", "'", string, '\\')); //$NON-NLS-2$ //$NON-NLS-1$ - - // rules.add(new SingleLineRule("//", "//", php_comment)); - rules.add(new MultiLineRule("/*", "*/", multi_comment)); + // token = getToken(IPreferenceConstants.PHP_STRING_SQ); + // rules.add(new SingleQuoteStringRule(token)); + // token = getToken(IPreferenceConstants.PHP_STRING_DQ); + // rules.add(new DoubleQuoteStringRule(token)); + rules.add(new AccentStringRule(token)); + token = getToken(IPreferenceConstants.PHP_MULTILINE_COMMENT); + rules.add(new MultiLineRule("/*", "*/", token)); //$NON-NLS-2$ //$NON-NLS-1$ // Add generic whitespace rule. rules.add(new WhitespaceRule(new PHPWhitespaceDetector())); - // Add word rule for keywords, types, and constants. - PHPWordRule wordRule = new PHPWordRule(new PHPWordDetector(), other); - for (int i = 0; i < fgKeywords.length; i++) - wordRule.addWord(fgKeywords[i], keyword); - for (int i = 0; i < fgTypes.length; i++) - wordRule.addWord(fgTypes[i], type); - for (int i = 0; i < fgConstants.length; i++) - wordRule.addWord(fgConstants[i], type); + token = getToken(IPreferenceConstants.PHP_DEFAULT); + PHPWordRule wordRule = new PHPWordRule(new PHPWordDetector(), token); + + Token keyword = getToken(IPreferenceConstants.PHP_KEYWORD); + Token functionName = getToken(IPreferenceConstants.PHP_FUNCTIONNAME); + Token type = getToken(IPreferenceConstants.PHP_TYPE); + Token constant = getToken(IPreferenceConstants.PHP_CONSTANT); + + ArrayList buffer = PHPSyntaxRdr.getSyntaxData(); + // String strbuffer = null; unused + PHPElement elbuffer = null; + String name; + for (int i = 0; i < buffer.size(); i++) { + // while ((buffer != null) + // && (!buffer.isEmpty() + // && ((elbuffer = (PHPElement) buffer.remove(0)) != null))) { + elbuffer = (PHPElement) buffer.get(i); + if (elbuffer instanceof PHPKeyword) { + name = ((PHPKeyword) elbuffer).getName(); + if (!name.equals("return")) { + wordRule.addWord(name, keyword); + } + } else if (elbuffer instanceof PHPFunction) { + wordRule.addWordIgnoreCase(((PHPFunction) elbuffer).getName(), + functionName); + } else if (elbuffer instanceof PHPType) { + wordRule.addWord(elbuffer.getName(), type); + } else if (elbuffer instanceof PHPConstant) { + wordRule.addWord(elbuffer.getName(), constant); + } + } + + // Add word rule for keyword 'return'. + token = getToken(IPreferenceConstants.PHP_KEYWORD_RETURN); + wordRule.addWord("return", token); + + // Add rule for operators and brackets (at the end !) + rules.add(new OperatorRule(getToken(IPreferenceConstants.PHP_OPERATOR), + getToken(IPreferenceConstants.PHP_BRACE_OPERATOR), + getToken(IPreferenceConstants.PHP_STRING_DQ))); + rules.add(wordRule); - IRule[] result = new IRule[rules.size()]; - rules.toArray(result); - setRules(result); + setDefaultReturnToken(getToken(IPreferenceConstants.PHP_DEFAULT)); + return rules; } }