/**********************************************************************
-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;
+import org.eclipse.jface.text.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;
- public static String[] fgFunctionNames =
- {
- "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 <code>true</code> iff the character is an operator,
+ * <code>false</code> 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);
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
+ * <code>null</code>
+ * @param token
+ * the token to be returned if the word has been found, may
+ * not be <code>null</code>
+ */
+ 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);
+ }
+ if (c != 'p' && c != 'P') {
+ scanner.unread();
+ return getToken(IPreferenceConstants.PHP_TAG);
+ } else {
+ c = scanner.read();
+ if (c != 'h' && c != 'H') {
+ scanner.unread();
+ scanner.unread();
+ return getToken(IPreferenceConstants.PHP_TAG);
+ } else {
+ c = scanner.read();
+ if (c != 'p' && c != 'P') {
+ scanner.unread();
+ scanner.unread();
+ scanner.unread();
+ return getToken(IPreferenceConstants.PHP_TAG);
+ } else {
+ return getToken(IPreferenceConstants.PHP_TAG);
+ }
+ }
+ }
+ }
+ }
+ if (c == '?') {
+ 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;
}
}
- 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 < fgFunctionNames.length; i++)
- wordRule.addWord(fgFunctionNames[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;
}
-}
+}
\ No newline at end of file