From 97035588b0ce68995951eae19f912e1251586ac1 Mon Sep 17 00:00:00 2001 From: Christian Nicolai Date: Sat, 6 Aug 2011 12:23:28 +0200 Subject: [PATCH] Original JOE syntax highlighting file for PHP This contains bugs... --- php.jsf | 293 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 293 insertions(+) create mode 100644 php.jsf diff --git a/php.jsf b/php.jsf new file mode 100644 index 0000000..4277586 --- /dev/null +++ b/php.jsf @@ -0,0 +1,293 @@ +# JOE syntax highlight file for PHP +# modified by Eric Lin + +# TODO: +# * heredoc support (as good as possible) +# * highlight function and class names? + +# Define no. sync lines +# You can say: +# -200 means 200 lines +# - means always start parsing from beginning of file when we lose sync +# if nothing is specified, the default is -50 + +- + +# Define colors + +=Idle +=Comment green +=Constant cyan +=Constant_sq blue +=Escape bold cyan +=Keyword bold +=Var red +=Methods bold + +# Call HTML highlighter. It will call the PHP highlighter subroutine in this file. + +:begin Idle + * call_failed noeat call=html.html(php) + +:call_failed Var + * call_failed + +# PHP highlighter. + +.subr php + +:idle Idle + * idle + "<" idle_done + "?" idle_qmark + "%" idle_hash + "#" sh_comment recolor=-1 + "/" slash + "0-9" first_digit recolor=-1 + "'" string_sq recolor=-1 + "\"" string_dq recolor=-1 + "\`" string_bq recolor=-1 + "a-zA-Z_" ident buffer + "$" php_var recolor=-1 + "-" maybe_method + "{}" brace recolor=-1 + +:idle_done Idle + * idle noeat + "/" idle noeat recolor=-2 return + "<" idle_here + +:idle_here Idle + * idle noeat + "<" here_doc + +:here_doc Idle + * idle noeat + " " here_doc + "A-Za-z_" here_name buffer + +:here_name Idle + * inhere_doc save_s + "A-Za-z_0-9" here_name + +:inhere_doc Constant + * inhere_not_eol + "\n" inhere_doc + "A-Za-z_" inhere_name buffer + +:inhere_not_eol Constant + * inhere_not_eol + "\n" inhere_doc + +:inhere_name Constant + * inhere_doc + ";" inhere_doc strings + "&" idle +done + "A-Za-z_0-9" inhere_name + +:brace Methods + * idle noeat + +:php_var Var + * idle noeat + "a-zA-Z_0-9-ÿ" php_var + +:var_indqstring Var + * string_dq recolor=-1 + "a-zA-Z_" var_indqstring + "\"" idle + "\\" string_dq_esc recolor=-1 + +:var_inbqstring Var + * string_bq recolor=-1 + "a-zA-Z_" var_inbqstring + "\`" idle + "\\" string_bq_esc recolor=-1 + +:maybe_method Methods + * idle recolor=-1 + "?" idle_qmark + "%" idle_hash + "#" sh_comment recolor=-1 + "/" slash + "0-9" first_digit recolor=-1 + "'" string_sq recolor=-1 + "\"" string_dq recolor=-1 + "a-zA-Z_" ident buffer + "$" php_var recolor=-1 + "{}" brace recolor=-1 + ">" method recolor=-2 + +:method Methods + * idle recolor=-1 + "a-zA-Z_" method recolor=-1 + +:idle_qmark Idle + * idle + ">" idle recolor=-2 return + +:idle_hash Idle + * idle noeat + ">" idle recolor=-2 return + +:sh_comment Comment + * sh_comment + "\n" idle + +:slash Idle + * idle noeat + "*" comment recolor=-2 + "/" line_comment recolor=-2 + +:comment Comment + * comment + "*" maybe_end_comment + +:maybe_end_comment Comment + * comment + "/" idle + "*" maybe_end_comment + +:line_comment Comment + * line_comment + "\n" idle + + +:string_sq Constant_sq + * string_sq + "\'" idle + "\\" string_sq_esc recolor=-1 + +:string_sq_esc Escape + * string_sq + "\n" string_sq recolor=-2 + +:string_dq Constant + * string_dq + "$" var_indqstring recolor=-1 + "\"" idle + "\\" string_dq_esc recolor=-1 + +:string_dq_esc Escape + * string_dq + "\n" string_dq recolor=-2 + +:string_bq Constant + * string_bq + "$" var_inbqstring recolor=-1 + "\`" idle + "\\" string_bq_esc recolor=-1 + +:string_bq_esc Escape + * string_bq + "\n" string_bq recolor=-2 + +:first_digit Constant + * idle noeat + "xX" hex + "." float + "0" octal + "1-9" first_number + +:octal Constant + * idle noeat + "0-7" octal + +:hex Constant + * idle noeat + "0-9A-Fa-f" hex + +:first_number Constant + * idle noeat + "0-9" first_number + "." float + +:maybe_float Constant + * idle recolor=-2 noeat + "0-9" float recolor=-2 + +:float Constant + * idle noeat + "eE" epart + "0-9" float + +:epart Constant + * idle noeat + "0-9+\-" enum + +:enum Constant + * idle noeat + "0-9" enum + +:ident Idle + * idle noeat strings + "addslashes" meth + "array" meth + "array_keys" meth + "count" meth + "date" meth + "chr" meth + "empty" meth + "end" meth + "header" meth + "highlight_file" meth + "htmlspecialchars" meth + "isset" meth + "shuffle" meth + "strip_tags" meth + "strlen" meth + "strpos" meth + "strrpos" meth + "substr" meth + "trim" meth + "and" kw + "as" kw + "break" kw + "case" kw + "class" kw + "continue" kw + "declare" kw + "default" kw + "die" kw + "do" kw + "echo" kw + "else" kw + "elseif" kw + "eval" kw + "exception" kw + "exit" kw + "extends" kw + "for" kw + "foreach" kw + "function" kw + "global" kw + "if" kw + "include" kw + "include_once" kw + "list" kw + "new" kw + "or" kw + "print" kw + "private" kw + "public" kw + "require" kw + "require_once" kw + "return" kw + "static" kw + "switch" kw + "unset" kw + "while" kw +done + "a-zA-Z0-9_" ident + +:kw Keyword + * idle noeat + +:meth Methods + * idle noeat + +:var Var + * mark noeat + +.end