diff options
Diffstat (limited to 'print/enscript-letter/files/patch-ruby.st')
-rw-r--r-- | print/enscript-letter/files/patch-ruby.st | 208 |
1 files changed, 208 insertions, 0 deletions
diff --git a/print/enscript-letter/files/patch-ruby.st b/print/enscript-letter/files/patch-ruby.st new file mode 100644 index 000000000000..a34b4fd61f04 --- /dev/null +++ b/print/enscript-letter/files/patch-ruby.st @@ -0,0 +1,208 @@ +--- states/hl/ruby.st.orig Wed Dec 31 18:00:00 1969 ++++ states/hl/ruby.st Tue Mar 2 06:11:05 2004 +@@ -0,0 +1,205 @@ ++/** ++ * Name: ruby ++ * Description: Ruby programming language. ++ * Author: Mike Wilson <m.v.wilson@home.com> ++ */ ++ ++state ruby_comment ++{ ++ /\*\\\// { ++ language_print ($0); ++ return; ++ } ++ LANGUAGE_SPECIALS { ++ language_print ($0); ++ } ++} ++ ++state ruby_dquot_string ++{ ++ /\\\\./ { ++ language_print ($0); ++ } ++ /\"/ { ++ language_print ($0); ++ return; ++ } ++ LANGUAGE_SPECIALS { ++ language_print ($0); ++ } ++} ++ ++state ruby_quot_string ++{ ++ /\\\\./ { ++ language_print ($0); ++ } ++ /[\']/ { ++ language_print ($0); ++ return; ++ } ++ LANGUAGE_SPECIALS { ++ language_print ($0); ++ } ++} ++ ++state ruby_bquot_string ++{ ++ /\\\\./ { ++ language_print ($0); ++ } ++ /`/ { ++ language_print ($0); ++ return; ++ } ++ LANGUAGE_SPECIALS { ++ language_print ($0); ++ } ++} ++ ++state ruby ++{ ++ BEGIN { ++ header (); ++ } ++ END { ++ trailer (); ++ } ++ ++ /* Comments. */ ++ /#[^{].*$/ { ++ comment_face (true); ++ language_print ($0); ++ comment_face (false); ++ } ++ ++ /* Ignore escaped quote marks */ ++ /\\\"/ { ++ language_print ($0); ++ } ++ /\\\'/ { ++ language_print ($0); ++ } ++ /\\\`/ { ++ language_print ($0); ++ } ++ ++ /* In cgi files, JavaScript might be imbedded, so we need to look out ++ * for the JavaScript comments, because they might contain something ++ * we don't like, like a contraction (don't, won't, etc.) ++ * We won't put them in comment face, because they are not ruby ++ * comments. ++ */ ++ /\/\// { ++ language_print ($0); ++ call (eat_one_line); ++ } ++ ++ /* String constants. */ ++ /\"/ { ++ string_face (true); ++ language_print ($0); ++ call (ruby_dquot_string); ++ string_face (false); ++ } ++ /[\']/ { ++ string_face (true); ++ language_print ($0); ++ call (ruby_quot_string); ++ string_face (false); ++ } ++ ++ /* Backquoted command string */ ++ /`/ { ++ string_face (true); ++ language_print ($0); ++ call (ruby_bquot_string); ++ string_face (false); ++ } ++ ++ /* Variables globals and instance */ ++ /[$@]\w+/ { ++ variable_name_face (true); ++ language_print ($0); ++ variable_name_face (false); ++ } ++ ++ /* Variables class variable */ ++ /@@\w+/ { ++ variable_name_face (true); ++ language_print ($0); ++ variable_name_face (false); ++ } ++ ++ /([ \t]*)(def)([ \t]+)([^(]*)/ { ++ /* indentation */ ++ language_print ($1); ++ ++ /* def */ ++ keyword_face (true); ++ language_print ($2); ++ keyword_face (false); ++ ++ /* middle */ ++ language_print ($3); ++ ++ /* Function name. */ ++ function_name_face (true); ++ language_print ($4); ++ function_name_face (false); ++ } ++ ++ /\$[!@&`'+~=\/\\,;.<>_*$?:"]/ { ++ variable_name_face (true); ++ language_print ($0); ++ variable_name_face (false); ++ } ++ ++ /* Highlighting ++ --Type face ++ private protected public ++ ++ --Builtin face (I consider these to be somewhat special) ++ alias alias_method attr attr_accessor attr_reader attr_writer ++ module_alias module_function self super ++ ++ --Reference face ++ require include ++ ++ --Keyword face ++ and begin break case class def defined? do else elsif end ++ ensure eval extend false for if in method module next nil not ++ or redo rescue retry return then true undef unless until when ++ while yield ++ */ ++/\\b(private|protected|public)\\b/ { ++ type_face (true); ++ language_print ($0); ++ type_face (false); ++ } ++ ++/\\b(alias|alias_method|attr|attr_accessor|attr_reader|attr_writer\\ ++|module_alias|module_function|self|super)\\b/ { ++ builtin_face (true); ++ language_print ($0); ++ builtin_face (false); ++ } ++ ++/\\b(include|require)\\b/ { ++ reference_face (true); ++ language_print ($0); ++ reference_face (false); ++ } ++ ++/\\b(and|begin|break|case|class|def|defined?|do|else|elsif|end|ensure|eval\\ ++|extend|false|for|if|in|method|module|next|nil|not|or|raise|redo|rescue|retry\\ ++|return|then|true|undef|unless|until|when|while|yield)\\b/ { ++ keyword_face (true); ++ language_print ($0); ++ keyword_face (false); ++ } ++ ++ LANGUAGE_SPECIALS { ++ language_print ($0); ++ } ++} |