diff options
Diffstat (limited to 'vendor/gems/coderay-1.0.0/lib/coderay/scanners')
26 files changed, 0 insertions, 4833 deletions
diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/_map.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/_map.rb deleted file mode 100644 index a240298d1..000000000 --- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/_map.rb +++ /dev/null @@ -1,24 +0,0 @@ -module CodeRay -module Scanners - - map \ - :'c++' => :cpp, - :cplusplus => :cpp, - :ecmascript => :java_script, - :ecma_script => :java_script, - :rhtml => :erb, - :eruby => :erb, - :irb => :ruby, - :javascript => :java_script, - :js => :java_script, - :pascal => :delphi, - :patch => :diff, - :plain => :text, - :plaintext => :text, - :xhtml => :html, - :yml => :yaml - - default :text - -end -end diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/c.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/c.rb deleted file mode 100644 index 8d24b99df..000000000 --- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/c.rb +++ /dev/null @@ -1,189 +0,0 @@ -module CodeRay -module Scanners - - # Scanner for C. - class C < Scanner - - register_for :c - file_extension 'c' - - KEYWORDS = [ - 'asm', 'break', 'case', 'continue', 'default', 'do', - 'else', 'enum', 'for', 'goto', 'if', 'return', - 'sizeof', 'struct', 'switch', 'typedef', 'union', 'while', - 'restrict', # added in C99 - ] # :nodoc: - - PREDEFINED_TYPES = [ - 'int', 'long', 'short', 'char', - 'signed', 'unsigned', 'float', 'double', - 'bool', 'complex', # added in C99 - ] # :nodoc: - - PREDEFINED_CONSTANTS = [ - 'EOF', 'NULL', - 'true', 'false', # added in C99 - ] # :nodoc: - DIRECTIVES = [ - 'auto', 'extern', 'register', 'static', 'void', - 'const', 'volatile', # added in C89 - 'inline', # added in C99 - ] # :nodoc: - - IDENT_KIND = WordList.new(:ident). - add(KEYWORDS, :keyword). - add(PREDEFINED_TYPES, :predefined_type). - add(DIRECTIVES, :directive). - add(PREDEFINED_CONSTANTS, :predefined_constant) # :nodoc: - - ESCAPE = / [rbfntv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x # :nodoc: - UNICODE_ESCAPE = / u[a-fA-F0-9]{4} | U[a-fA-F0-9]{8} /x # :nodoc: - - protected - - def scan_tokens encoder, options - - state = :initial - label_expected = true - case_expected = false - label_expected_before_preproc_line = nil - in_preproc_line = false - - until eos? - - case state - - when :initial - - if match = scan(/ \s+ | \\\n /x) - if in_preproc_line && match != "\\\n" && match.index(?\n) - in_preproc_line = false - label_expected = label_expected_before_preproc_line - end - encoder.text_token match, :space - - elsif match = scan(%r! // [^\n\\]* (?: \\. [^\n\\]* )* | /\* (?: .*? \*/ | .* ) !mx) - encoder.text_token match, :comment - - elsif match = scan(/ [-+*=<>?:;,!&^|()\[\]{}~%]+ | \/=? | \.(?!\d) /x) - label_expected = match =~ /[;\{\}]/ - if case_expected - label_expected = true if match == ':' - case_expected = false - end - encoder.text_token match, :operator - - elsif match = scan(/ [A-Za-z_][A-Za-z_0-9]* /x) - kind = IDENT_KIND[match] - if kind == :ident && label_expected && !in_preproc_line && scan(/:(?!:)/) - kind = :label - match << matched - else - label_expected = false - if kind == :keyword - case match - when 'case', 'default' - case_expected = true - end - end - end - encoder.text_token match, kind - - elsif match = scan(/L?"/) - encoder.begin_group :string - if match[0] == ?L - encoder.text_token 'L', :modifier - match = '"' - end - encoder.text_token match, :delimiter - state = :string - - elsif match = scan(/ \# \s* if \s* 0 /x) - match << scan_until(/ ^\# (?:elif|else|endif) .*? $ | \z /xm) unless eos? - encoder.text_token match, :comment - - elsif match = scan(/#[ \t]*(\w*)/) - encoder.text_token match, :preprocessor - in_preproc_line = true - label_expected_before_preproc_line = label_expected - state = :include_expected if self[1] == 'include' - - elsif match = scan(/ L?' (?: [^\'\n\\] | \\ #{ESCAPE} )? '? /ox) - label_expected = false - encoder.text_token match, :char - - elsif match = scan(/\$/) - encoder.text_token match, :ident - - elsif match = scan(/0[xX][0-9A-Fa-f]+/) - label_expected = false - encoder.text_token match, :hex - - elsif match = scan(/(?:0[0-7]+)(?![89.eEfF])/) - label_expected = false - encoder.text_token match, :octal - - elsif match = scan(/(?:\d+)(?![.eEfF])L?L?/) - label_expected = false - encoder.text_token match, :integer - - elsif match = scan(/\d[fF]?|\d*\.\d+(?:[eE][+-]?\d+)?[fF]?|\d+[eE][+-]?\d+[fF]?/) - label_expected = false - encoder.text_token match, :float - - else - encoder.text_token getch, :error - - end - - when :string - if match = scan(/[^\\\n"]+/) - encoder.text_token match, :content - elsif match = scan(/"/) - encoder.text_token match, :delimiter - encoder.end_group :string - state = :initial - label_expected = false - elsif match = scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox) - encoder.text_token match, :char - elsif match = scan(/ \\ | $ /x) - encoder.end_group :string - encoder.text_token match, :error - state = :initial - label_expected = false - else - raise_inspect "else case \" reached; %p not handled." % peek(1), encoder - end - - when :include_expected - if match = scan(/<[^>\n]+>?|"[^"\n\\]*(?:\\.[^"\n\\]*)*"?/) - encoder.text_token match, :include - state = :initial - - elsif match = scan(/\s+/) - encoder.text_token match, :space - state = :initial if match.index ?\n - - else - state = :initial - - end - - else - raise_inspect 'Unknown state', encoder - - end - - end - - if state == :string - encoder.end_group :string - end - - encoder - end - - end - -end -end diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/clojure.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/clojure.rb deleted file mode 100644 index f8fbf6506..000000000 --- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/clojure.rb +++ /dev/null @@ -1,217 +0,0 @@ -# encoding: utf-8 -module CodeRay - module Scanners - - # Clojure scanner by Licenser. - class Clojure < Scanner - - register_for :clojure - file_extension 'clj' - - SPECIAL_FORMS = %w[ - def if do let quote var fn loop recur throw try catch monitor-enter monitor-exit . - new - ] # :nodoc: - - CORE_FORMS = %w[ - + - -> ->> .. / * <= < = == >= > accessor aclone add-classpath add-watch - agent agent-error agent-errors aget alength alias all-ns alter alter-meta! - alter-var-root amap ancestors and apply areduce array-map aset aset-boolean - aset-byte aset-char aset-double aset-float aset-int aset-long aset-short - assert assoc assoc! assoc-in associative? atom await await-for bases bean - bigdec bigint binding bit-and bit-and-not bit-clear bit-flip bit-not bit-or - bit-set bit-shift-left bit-shift-right bit-test bit-xor boolean boolean-array - booleans bound-fn bound-fn* bound? butlast byte byte-array bytes case cast char - char-array char-escape-string char-name-string char? chars class class? - clear-agent-errors clojure-version coll? comment commute comp comparator - compare compare-and-set! compile complement concat cond condp conj conj! - cons constantly construct-proxy contains? count counted? create-ns - create-struct cycle dec decimal? declare definline defmacro defmethod defmulti - defn defn- defonce defprotocol defrecord defstruct deftype delay delay? - deliver denominator deref derive descendants disj disj! dissoc dissoc! - distinct distinct? doall doc dorun doseq dosync dotimes doto double - double-array doubles drop drop-last drop-while empty empty? ensure - enumeration-seq error-handler error-mode eval even? every? extend - extend-protocol extend-type extenders extends? false? ffirst file-seq - filter find find-doc find-ns find-var first float float-array float? - floats flush fn fn? fnext for force format future future-call future-cancel - future-cancelled? future-done? future? gen-class gen-interface gensym get - get-in get-method get-proxy-class get-thread-bindings get-validator hash - hash-map hash-set identical? identity if-let if-not ifn? import in-ns - inc init-proxy instance? int int-array integer? interleave intern - interpose into into-array ints io! isa? iterate iterator-seq juxt key - keys keyword keyword? last lazy-cat lazy-seq let letfn line-seq list list* - list? load load-file load-reader load-string loaded-libs locking long - long-array longs loop macroexpand macroexpand-1 make-array make-hierarchy - map map? mapcat max max-key memfn memoize merge merge-with meta methods - min min-key mod name namespace neg? newline next nfirst nil? nnext not - not-any? not-empty not-every? not= ns ns-aliases ns-imports ns-interns - ns-map ns-name ns-publics ns-refers ns-resolve ns-unalias ns-unmap nth - nthnext num number? numerator object-array odd? or parents partial - partition pcalls peek persistent! pmap pop pop! pop-thread-bindings - pos? pr pr-str prefer-method prefers print print-namespace-doc - print-str printf println println-str prn prn-str promise proxy - proxy-mappings proxy-super push-thread-bindings pvalues quot rand - rand-int range ratio? rationalize re-find re-groups re-matcher - re-matches re-pattern re-seq read read-line read-string reduce ref - ref-history-count ref-max-history ref-min-history ref-set refer - refer-clojure reify release-pending-sends rem remove remove-all-methods - remove-method remove-ns remove-watch repeat repeatedly replace replicate - require reset! reset-meta! resolve rest restart-agent resultset-seq - reverse reversible? rseq rsubseq satisfies? second select-keys send - send-off seq seq? seque sequence sequential? set set-error-handler! - set-error-mode! set-validator! set? short short-array shorts - shutdown-agents slurp some sort sort-by sorted-map sorted-map-by - sorted-set sorted-set-by sorted? special-form-anchor special-symbol? - split-at split-with str string? struct struct-map subs subseq subvec - supers swap! symbol symbol? sync syntax-symbol-anchor take take-last - take-nth take-while test the-ns thread-bound? time to-array to-array-2d - trampoline transient tree-seq true? type unchecked-add unchecked-dec - unchecked-divide unchecked-inc unchecked-multiply unchecked-negate - unchecked-remainder unchecked-subtract underive update-in update-proxy - use val vals var-get var-set var? vary-meta vec vector vector-of vector? - when when-first when-let when-not while with-bindings with-bindings* - with-in-str with-local-vars with-meta with-open with-out-str - with-precision xml-seq zero? zipmap - ] # :nodoc: - - PREDEFINED_CONSTANTS = %w[ - true false nil *1 *2 *3 *agent* *clojure-version* *command-line-args* - *compile-files* *compile-path* *e *err* *file* *flush-on-newline* - *in* *ns* *out* *print-dup* *print-length* *print-level* *print-meta* - *print-readably* *read-eval* *warn-on-reflection* - ] # :nodoc: - - IDENT_KIND = WordList.new(:ident). - add(SPECIAL_FORMS, :keyword). - add(CORE_FORMS, :keyword). - add(PREDEFINED_CONSTANTS, :predefined_constant) - - KEYWORD_NEXT_TOKEN_KIND = WordList.new(nil). - add(%w[ def defn defn- definline defmacro defmulti defmethod defstruct defonce declare ], :function). - add(%w[ ns ], :namespace). - add(%w[ defprotocol defrecord ], :class) - - BASIC_IDENTIFIER = /[a-zA-Z$%*\/_+!?&<>\-=]=?[a-zA-Z0-9$&*+!\/_?<>\-\#]*/ - IDENTIFIER = /(?!-\d)(?:(?:#{BASIC_IDENTIFIER}\.)*#{BASIC_IDENTIFIER}(?:\/#{BASIC_IDENTIFIER})?\.?)|\.\.?/ - SYMBOL = /::?#{IDENTIFIER}/o - DIGIT = /\d/ - DIGIT10 = DIGIT - DIGIT16 = /[0-9a-f]/i - DIGIT8 = /[0-7]/ - DIGIT2 = /[01]/ - RADIX16 = /\#x/i - RADIX8 = /\#o/i - RADIX2 = /\#b/i - RADIX10 = /\#d/i - EXACTNESS = /#i|#e/i - SIGN = /[\+-]?/ - EXP_MARK = /[esfdl]/i - EXP = /#{EXP_MARK}#{SIGN}#{DIGIT}+/ - SUFFIX = /#{EXP}?/ - PREFIX10 = /#{RADIX10}?#{EXACTNESS}?|#{EXACTNESS}?#{RADIX10}?/ - PREFIX16 = /#{RADIX16}#{EXACTNESS}?|#{EXACTNESS}?#{RADIX16}/ - PREFIX8 = /#{RADIX8}#{EXACTNESS}?|#{EXACTNESS}?#{RADIX8}/ - PREFIX2 = /#{RADIX2}#{EXACTNESS}?|#{EXACTNESS}?#{RADIX2}/ - UINT10 = /#{DIGIT10}+#*/ - UINT16 = /#{DIGIT16}+#*/ - UINT8 = /#{DIGIT8}+#*/ - UINT2 = /#{DIGIT2}+#*/ - DECIMAL = /#{DIGIT10}+#+\.#*#{SUFFIX}|#{DIGIT10}+\.#{DIGIT10}*#*#{SUFFIX}|\.#{DIGIT10}+#*#{SUFFIX}|#{UINT10}#{EXP}/ - UREAL10 = /#{UINT10}\/#{UINT10}|#{DECIMAL}|#{UINT10}/ - UREAL16 = /#{UINT16}\/#{UINT16}|#{UINT16}/ - UREAL8 = /#{UINT8}\/#{UINT8}|#{UINT8}/ - UREAL2 = /#{UINT2}\/#{UINT2}|#{UINT2}/ - REAL10 = /#{SIGN}#{UREAL10}/ - REAL16 = /#{SIGN}#{UREAL16}/ - REAL8 = /#{SIGN}#{UREAL8}/ - REAL2 = /#{SIGN}#{UREAL2}/ - IMAG10 = /i|#{UREAL10}i/ - IMAG16 = /i|#{UREAL16}i/ - IMAG8 = /i|#{UREAL8}i/ - IMAG2 = /i|#{UREAL2}i/ - COMPLEX10 = /#{REAL10}@#{REAL10}|#{REAL10}\+#{IMAG10}|#{REAL10}-#{IMAG10}|\+#{IMAG10}|-#{IMAG10}|#{REAL10}/ - COMPLEX16 = /#{REAL16}@#{REAL16}|#{REAL16}\+#{IMAG16}|#{REAL16}-#{IMAG16}|\+#{IMAG16}|-#{IMAG16}|#{REAL16}/ - COMPLEX8 = /#{REAL8}@#{REAL8}|#{REAL8}\+#{IMAG8}|#{REAL8}-#{IMAG8}|\+#{IMAG8}|-#{IMAG8}|#{REAL8}/ - COMPLEX2 = /#{REAL2}@#{REAL2}|#{REAL2}\+#{IMAG2}|#{REAL2}-#{IMAG2}|\+#{IMAG2}|-#{IMAG2}|#{REAL2}/ - NUM10 = /#{PREFIX10}?#{COMPLEX10}/ - NUM16 = /#{PREFIX16}#{COMPLEX16}/ - NUM8 = /#{PREFIX8}#{COMPLEX8}/ - NUM2 = /#{PREFIX2}#{COMPLEX2}/ - NUM = /#{NUM10}|#{NUM16}|#{NUM8}|#{NUM2}/ - - protected - - def scan_tokens encoder, options - - state = :initial - kind = nil - - until eos? - - case state - when :initial - if match = scan(/ \s+ | \\\n | , /x) - encoder.text_token match, :space - elsif match = scan(/['`\(\[\)\]\{\}]|\#[({]|~@?|[@\^]/) - encoder.text_token match, :operator - elsif match = scan(/;.*/) - encoder.text_token match, :comment # TODO: recognize (comment ...) too - elsif match = scan(/\#?\\(?:newline|space|.?)/) - encoder.text_token match, :char - elsif match = scan(/\#[ft]/) - encoder.text_token match, :predefined_constant - elsif match = scan(/#{IDENTIFIER}/o) - kind = IDENT_KIND[match] - encoder.text_token match, kind - if rest? && kind == :keyword - if kind = KEYWORD_NEXT_TOKEN_KIND[match] - encoder.text_token match, :space if match = scan(/\s+/o) - encoder.text_token match, kind if match = scan(/#{IDENTIFIER}/o) - end - end - elsif match = scan(/#{SYMBOL}/o) - encoder.text_token match, :symbol - elsif match = scan(/\./) - encoder.text_token match, :operator - elsif match = scan(/ \# \^ #{IDENTIFIER} /ox) - encoder.text_token match, :type - elsif match = scan(/ (\#)? " /x) - state = self[1] ? :regexp : :string - encoder.begin_group state - encoder.text_token match, :delimiter - elsif match = scan(/#{NUM}/o) and not matched.empty? - encoder.text_token match, match[/[.e\/]/i] ? :float : :integer - else - encoder.text_token getch, :error - end - - when :string, :regexp - if match = scan(/[^"\\]+|\\.?/) - encoder.text_token match, :content - elsif match = scan(/"/) - encoder.text_token match, :delimiter - encoder.end_group state - state = :initial - else - raise_inspect "else case \" reached; %p not handled." % peek(1), - encoder, state - end - - else - raise 'else case reached' - - end - - end - - if [:string, :regexp].include? state - encoder.end_group state - end - - encoder - - end - end - end -end
\ No newline at end of file diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/cpp.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/cpp.rb deleted file mode 100644 index 9da62f4c1..000000000 --- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/cpp.rb +++ /dev/null @@ -1,215 +0,0 @@ -module CodeRay -module Scanners - - # Scanner for C++. - # - # Aliases: +cplusplus+, c++ - class CPlusPlus < Scanner - - register_for :cpp - file_extension 'cpp' - title 'C++' - - #-- http://www.cppreference.com/wiki/keywords/start - KEYWORDS = [ - 'and', 'and_eq', 'asm', 'bitand', 'bitor', 'break', - 'case', 'catch', 'class', 'compl', 'const_cast', - 'continue', 'default', 'delete', 'do', 'dynamic_cast', 'else', - 'enum', 'export', 'for', 'goto', 'if', 'namespace', 'new', - 'not', 'not_eq', 'or', 'or_eq', 'reinterpret_cast', 'return', - 'sizeof', 'static_cast', 'struct', 'switch', 'template', - 'throw', 'try', 'typedef', 'typeid', 'typename', 'union', - 'while', 'xor', 'xor_eq', - ] # :nodoc: - - PREDEFINED_TYPES = [ - 'bool', 'char', 'double', 'float', 'int', 'long', - 'short', 'signed', 'unsigned', 'wchar_t', 'string', - ] # :nodoc: - PREDEFINED_CONSTANTS = [ - 'false', 'true', - 'EOF', 'NULL', - ] # :nodoc: - PREDEFINED_VARIABLES = [ - 'this', - ] # :nodoc: - DIRECTIVES = [ - 'auto', 'const', 'explicit', 'extern', 'friend', 'inline', 'mutable', 'operator', - 'private', 'protected', 'public', 'register', 'static', 'using', 'virtual', 'void', - 'volatile', - ] # :nodoc: - - IDENT_KIND = WordList.new(:ident). - add(KEYWORDS, :keyword). - add(PREDEFINED_TYPES, :predefined_type). - add(PREDEFINED_VARIABLES, :local_variable). - add(DIRECTIVES, :directive). - add(PREDEFINED_CONSTANTS, :predefined_constant) # :nodoc: - - ESCAPE = / [rbfntv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x # :nodoc: - UNICODE_ESCAPE = / u[a-fA-F0-9]{4} | U[a-fA-F0-9]{8} /x # :nodoc: - - protected - - def scan_tokens encoder, options - - state = :initial - label_expected = true - case_expected = false - label_expected_before_preproc_line = nil - in_preproc_line = false - - until eos? - - case state - - when :initial - - if match = scan(/ \s+ | \\\n /x) - if in_preproc_line && match != "\\\n" && match.index(?\n) - in_preproc_line = false - label_expected = label_expected_before_preproc_line - end - encoder.text_token match, :space - - elsif match = scan(%r! // [^\n\\]* (?: \\. [^\n\\]* )* | /\* (?: .*? \*/ | .* ) !mx) - encoder.text_token match, :comment - - elsif match = scan(/ \# \s* if \s* 0 /x) - match << scan_until(/ ^\# (?:elif|else|endif) .*? $ | \z /xm) unless eos? - encoder.text_token match, :comment - - elsif match = scan(/ [-+*=<>?:;,!&^|()\[\]{}~%]+ | \/=? | \.(?!\d) /x) - label_expected = match =~ /[;\{\}]/ - if case_expected - label_expected = true if match == ':' - case_expected = false - end - encoder.text_token match, :operator - - elsif match = scan(/ [A-Za-z_][A-Za-z_0-9]* /x) - kind = IDENT_KIND[match] - if kind == :ident && label_expected && !in_preproc_line && scan(/:(?!:)/) - kind = :label - match << matched - else - label_expected = false - if kind == :keyword - case match - when 'class' - state = :class_name_expected - when 'case', 'default' - case_expected = true - end - end - end - encoder.text_token match, kind - - elsif match = scan(/\$/) - encoder.text_token match, :ident - - elsif match = scan(/L?"/) - encoder.begin_group :string - if match[0] == ?L - encoder.text_token match, 'L', :modifier - match = '"' - end - state = :string - encoder.text_token match, :delimiter - - elsif match = scan(/#[ \t]*(\w*)/) - encoder.text_token match, :preprocessor - in_preproc_line = true - label_expected_before_preproc_line = label_expected - state = :include_expected if self[1] == 'include' - - elsif match = scan(/ L?' (?: [^\'\n\\] | \\ #{ESCAPE} )? '? /ox) - label_expected = false - encoder.text_token match, :char - - elsif match = scan(/0[xX][0-9A-Fa-f]+/) - label_expected = false - encoder.text_token match, :hex - - elsif match = scan(/(?:0[0-7]+)(?![89.eEfF])/) - label_expected = false - encoder.text_token match, :octal - - elsif match = scan(/(?:\d+)(?![.eEfF])L?L?/) - label_expected = false - encoder.text_token match, :integer - - elsif match = scan(/\d[fF]?|\d*\.\d+(?:[eE][+-]?\d+)?[fF]?|\d+[eE][+-]?\d+[fF]?/) - label_expected = false - encoder.text_token match, :float - - else - encoder.text_token getch, :error - - end - - when :string - if match = scan(/[^\\"]+/) - encoder.text_token match, :content - elsif match = scan(/"/) - encoder.text_token match, :delimiter - encoder.end_group :string - state = :initial - label_expected = false - elsif match = scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox) - encoder.text_token match, :char - elsif match = scan(/ \\ | $ /x) - encoder.end_group :string - encoder.text_token match, :error - state = :initial - label_expected = false - else - raise_inspect "else case \" reached; %p not handled." % peek(1), encoder - end - - when :include_expected - if match = scan(/<[^>\n]+>?|"[^"\n\\]*(?:\\.[^"\n\\]*)*"?/) - encoder.text_token match, :include - state = :initial - - elsif match = scan(/\s+/) - encoder.text_token match, :space - state = :initial if match.index ?\n - - else - state = :initial - - end - - when :class_name_expected - if match = scan(/ [A-Za-z_][A-Za-z_0-9]* /x) - encoder.text_token match, :class - state = :initial - - elsif match = scan(/\s+/) - encoder.text_token match, :space - - else - encoder.text_token getch, :error - state = :initial - - end - - else - raise_inspect 'Unknown state', encoder - - end - - end - - if state == :string - encoder.end_group :string - end - - encoder - end - - end - -end -end diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/css.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/css.rb deleted file mode 100644 index e5f03f5b2..000000000 --- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/css.rb +++ /dev/null @@ -1,192 +0,0 @@ -module CodeRay -module Scanners - - class CSS < Scanner - - register_for :css - - KINDS_NOT_LOC = [ - :comment, - :class, :pseudo_class, :type, - :constant, :directive, - :key, :value, :operator, :color, :float, :string, - :error, :important, - ] # :nodoc: - - module RE # :nodoc: - Hex = /[0-9a-fA-F]/ - Unicode = /\\#{Hex}{1,6}(?:\r\n|\s)?/ # differs from standard because it allows uppercase hex too - Escape = /#{Unicode}|\\[^\r\n\f0-9a-fA-F]/ - NMChar = /[-_a-zA-Z0-9]|#{Escape}/ - NMStart = /[_a-zA-Z]|#{Escape}/ - NL = /\r\n|\r|\n|\f/ - String1 = /"(?:[^\n\r\f\\"]|\\#{NL}|#{Escape})*"?/ # TODO: buggy regexp - String2 = /'(?:[^\n\r\f\\']|\\#{NL}|#{Escape})*'?/ # TODO: buggy regexp - String = /#{String1}|#{String2}/ - - HexColor = /#(?:#{Hex}{6}|#{Hex}{3})/ - Color = /#{HexColor}/ - - Num = /-?(?:[0-9]+|[0-9]*\.[0-9]+)/ - Name = /#{NMChar}+/ - Ident = /-?#{NMStart}#{NMChar}*/ - AtKeyword = /@#{Ident}/ - Percentage = /#{Num}%/ - - reldimensions = %w[em ex px] - absdimensions = %w[in cm mm pt pc] - Unit = Regexp.union(*(reldimensions + absdimensions)) - - Dimension = /#{Num}#{Unit}/ - - Comment = %r! /\* (?: .*? \*/ | .* ) !mx - Function = /(?:url|alpha|attr|counters?)\((?:[^)\n\r\f]|\\\))*\)?/ - - Id = /##{Name}/ - Class = /\.#{Name}/ - PseudoClass = /:#{Name}/ - AttributeSelector = /\[[^\]]*\]?/ - end - - protected - - def scan_tokens encoder, options - - value_expected = nil - states = [:initial] - - until eos? - - if match = scan(/\s+/) - encoder.text_token match, :space - - elsif case states.last - when :initial, :media - if match = scan(/(?>#{RE::Ident})(?!\()|\*/ox) - encoder.text_token match, :type - next - elsif match = scan(RE::Class) - encoder.text_token match, :class - next - elsif match = scan(RE::Id) - encoder.text_token match, :constant - next - elsif match = scan(RE::PseudoClass) - encoder.text_token match, :pseudo_class - next - elsif match = scan(RE::AttributeSelector) - # TODO: Improve highlighting inside of attribute selectors. - encoder.text_token match[0,1], :operator - encoder.text_token match[1..-2], :attribute_name if match.size > 2 - encoder.text_token match[-1,1], :operator if match[-1] == ?] - next - elsif match = scan(/@media/) - encoder.text_token match, :directive - states.push :media_before_name - next - end - - when :block - if match = scan(/(?>#{RE::Ident})(?!\()/ox) - if value_expected - encoder.text_token match, :value - else - encoder.text_token match, :key - end - next - end - - when :media_before_name - if match = scan(RE::Ident) - encoder.text_token match, :type - states[-1] = :media_after_name - next - end - - when :media_after_name - if match = scan(/\{/) - encoder.text_token match, :operator - states[-1] = :media - next - end - - else - #:nocov: - raise_inspect 'Unknown state', encoder - #:nocov: - - end - - elsif match = scan(/\/\*(?:.*?\*\/|\z)/m) - encoder.text_token match, :comment - - elsif match = scan(/\{/) - value_expected = false - encoder.text_token match, :operator - states.push :block - - elsif match = scan(/\}/) - value_expected = false - if states.last == :block || states.last == :media - encoder.text_token match, :operator - states.pop - else - encoder.text_token match, :error - end - - elsif match = scan(/#{RE::String}/o) - encoder.begin_group :string - encoder.text_token match[0, 1], :delimiter - encoder.text_token match[1..-2], :content if match.size > 2 - encoder.text_token match[-1, 1], :delimiter if match.size >= 2 - encoder.end_group :string - - elsif match = scan(/#{RE::Function}/o) - encoder.begin_group :string - start = match[/^\w+\(/] - encoder.text_token start, :delimiter - if match[-1] == ?) - encoder.text_token match[start.size..-2], :content - encoder.text_token ')', :delimiter - else - encoder.text_token match[start.size..-1], :content - end - encoder.end_group :string - - elsif match = scan(/(?: #{RE::Dimension} | #{RE::Percentage} | #{RE::Num} )/ox) - encoder.text_token match, :float - - elsif match = scan(/#{RE::Color}/o) - encoder.text_token match, :color - - elsif match = scan(/! *important/) - encoder.text_token match, :important - - elsif match = scan(/(?:rgb|hsl)a?\([^()\n]*\)?/) - encoder.text_token match, :color - - elsif match = scan(RE::AtKeyword) - encoder.text_token match, :directive - - elsif match = scan(/ [+>:;,.=()\/] /x) - if match == ':' - value_expected = true - elsif match == ';' - value_expected = false - end - encoder.text_token match, :operator - - else - encoder.text_token getch, :error - - end - - end - - encoder - end - - end - -end -end diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/debug.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/debug.rb deleted file mode 100644 index 566bfa778..000000000 --- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/debug.rb +++ /dev/null @@ -1,65 +0,0 @@ -module CodeRay -module Scanners - - # = Debug Scanner - # - # Interprets the output of the Encoders::Debug encoder. - class Debug < Scanner - - register_for :debug - title 'CodeRay Token Dump Import' - - protected - - def scan_tokens encoder, options - - opened_tokens = [] - - until eos? - - if match = scan(/\s+/) - encoder.text_token match, :space - - elsif match = scan(/ (\w+) \( ( [^\)\\]* ( \\. [^\)\\]* )* ) \)? /x) - kind = self[1].to_sym - match = self[2].gsub(/\\(.)/m, '\1') - unless TokenKinds.has_key? kind - kind = :error - match = matched - end - encoder.text_token match, kind - - elsif match = scan(/ (\w+) ([<\[]) /x) - kind = self[1].to_sym - opened_tokens << kind - case self[2] - when '<' - encoder.begin_group kind - when '[' - encoder.begin_line kind - else - raise 'CodeRay bug: This case should not be reached.' - end - - elsif !opened_tokens.empty? && match = scan(/ > /x) - encoder.end_group opened_tokens.pop - - elsif !opened_tokens.empty? && match = scan(/ \] /x) - encoder.end_line opened_tokens.pop - - else - encoder.text_token getch, :space - - end - - end - - encoder.end_group opened_tokens.pop until opened_tokens.empty? - - encoder - end - - end - -end -end diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/delphi.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/delphi.rb deleted file mode 100644 index b328155ab..000000000 --- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/delphi.rb +++ /dev/null @@ -1,144 +0,0 @@ -module CodeRay -module Scanners - - # Scanner for the Delphi language (Object Pascal). - # - # Alias: +pascal+ - class Delphi < Scanner - - register_for :delphi - file_extension 'pas' - - KEYWORDS = [ - 'and', 'array', 'as', 'at', 'asm', 'at', 'begin', 'case', 'class', - 'const', 'constructor', 'destructor', 'dispinterface', 'div', 'do', - 'downto', 'else', 'end', 'except', 'exports', 'file', 'finalization', - 'finally', 'for', 'function', 'goto', 'if', 'implementation', 'in', - 'inherited', 'initialization', 'inline', 'interface', 'is', 'label', - 'library', 'mod', 'nil', 'not', 'object', 'of', 'or', 'out', 'packed', - 'procedure', 'program', 'property', 'raise', 'record', 'repeat', - 'resourcestring', 'set', 'shl', 'shr', 'string', 'then', 'threadvar', - 'to', 'try', 'type', 'unit', 'until', 'uses', 'var', 'while', 'with', - 'xor', 'on', - ] # :nodoc: - - DIRECTIVES = [ - 'absolute', 'abstract', 'assembler', 'at', 'automated', 'cdecl', - 'contains', 'deprecated', 'dispid', 'dynamic', 'export', - 'external', 'far', 'forward', 'implements', 'local', - 'near', 'nodefault', 'on', 'overload', 'override', - 'package', 'pascal', 'platform', 'private', 'protected', 'public', - 'published', 'read', 'readonly', 'register', 'reintroduce', - 'requires', 'resident', 'safecall', 'stdcall', 'stored', 'varargs', - 'virtual', 'write', 'writeonly', - ] # :nodoc: - - IDENT_KIND = WordList::CaseIgnoring.new(:ident). - add(KEYWORDS, :keyword). - add(DIRECTIVES, :directive) # :nodoc: - - NAME_FOLLOWS = WordList::CaseIgnoring.new(false). - add(%w(procedure function .)) # :nodoc: - - protected - - def scan_tokens encoder, options - - state = :initial - last_token = '' - - until eos? - - if state == :initial - - if match = scan(/ \s+ /x) - encoder.text_token match, :space - next - - elsif match = scan(%r! \{ \$ [^}]* \}? | \(\* \$ (?: .*? \*\) | .* ) !mx) - encoder.text_token match, :preprocessor - next - - elsif match = scan(%r! // [^\n]* | \{ [^}]* \}? | \(\* (?: .*? \*\) | .* ) !mx) - encoder.text_token match, :comment - next - - elsif match = scan(/ <[>=]? | >=? | :=? | [-+=*\/;,@\^|\(\)\[\]] | \.\. /x) - encoder.text_token match, :operator - - elsif match = scan(/\./) - encoder.text_token match, :operator - next if last_token == 'end' - - elsif match = scan(/ [A-Za-z_][A-Za-z_0-9]* /x) - encoder.text_token match, NAME_FOLLOWS[last_token] ? :ident : IDENT_KIND[match] - - elsif match = skip(/ ' ( [^\n']|'' ) (?:'|$) /x) - encoder.begin_group :char - encoder.text_token "'", :delimiter - encoder.text_token self[1], :content - encoder.text_token "'", :delimiter - encoder.end_group :char - next - - elsif match = scan(/ ' /x) - encoder.begin_group :string - encoder.text_token match, :delimiter - state = :string - - elsif match = scan(/ \# (?: \d+ | \$[0-9A-Fa-f]+ ) /x) - encoder.text_token match, :char - - elsif match = scan(/ \$ [0-9A-Fa-f]+ /x) - encoder.text_token match, :hex - - elsif match = scan(/ (?: \d+ ) (?![eE]|\.[^.]) /x) - encoder.text_token match, :integer - - elsif match = scan(/ \d+ (?: \.\d+ (?: [eE][+-]? \d+ )? | [eE][+-]? \d+ ) /x) - encoder.text_token match, :float - - else - encoder.text_token getch, :error - next - - end - - elsif state == :string - if match = scan(/[^\n']+/) - encoder.text_token match, :content - elsif match = scan(/''/) - encoder.text_token match, :char - elsif match = scan(/'/) - encoder.text_token match, :delimiter - encoder.end_group :string - state = :initial - next - elsif match = scan(/\n/) - encoder.end_group :string - encoder.text_token match, :space - state = :initial - else - raise "else case \' reached; %p not handled." % peek(1), encoder - end - - else - raise 'else-case reached', encoder - - end - - last_token = match - - end - - if state == :string - encoder.end_group state - end - - encoder - end - - end - -end -end diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/diff.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/diff.rb deleted file mode 100644 index fd70016d8..000000000 --- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/diff.rb +++ /dev/null @@ -1,201 +0,0 @@ -module CodeRay -module Scanners - - # Scanner for output of the diff command. - # - # Alias: +patch+ - class Diff < Scanner - - register_for :diff - title 'diff output' - - DEFAULT_OPTIONS = { - :highlight_code => true, - :inline_diff => true, - } - - protected - - require 'coderay/helpers/file_type' - - def scan_tokens encoder, options - - line_kind = nil - state = :initial - deleted_lines = 0 - scanners = Hash.new do |h, lang| - h[lang] = Scanners[lang].new '', :keep_tokens => true, :keep_state => true - end - content_scanner = scanners[:plain] - content_scanner_entry_state = nil - - until eos? - - if match = scan(/\n/) - deleted_lines = 0 unless line_kind == :delete - if line_kind - encoder.end_line line_kind - line_kind = nil - end - encoder.text_token match, :space - next - end - - case state - - when :initial - if match = scan(/--- |\+\+\+ |=+|_+/) - encoder.begin_line line_kind = :head - encoder.text_token match, :head - if match = scan(/.*?(?=$|[\t\n\x00]| \(revision)/) - encoder.text_token match, :filename - if options[:highlight_code] - file_type = FileType.fetch(match, :text) - file_type = :text if file_type == :diff - content_scanner = scanners[file_type] - content_scanner_entry_state = nil - end - end - next unless match = scan(/.+/) - encoder.text_token match, :plain - elsif match = scan(/Index: |Property changes on: /) - encoder.begin_line line_kind = :head - encoder.text_token match, :head - next unless match = scan(/.+/) - encoder.text_token match, :plain - elsif match = scan(/Added: /) - encoder.begin_line line_kind = :head - encoder.text_token match, :head - next unless match = scan(/.+/) - encoder.text_token match, :plain - state = :added - elsif match = scan(/\\ .*/) - encoder.text_token match, :comment - elsif match = scan(/@@(?>[^@\n]*)@@/) - content_scanner.state = :initial unless match?(/\n\+/) - content_scanner_entry_state = nil - if check(/\n|$/) - encoder.begin_line line_kind = :change - else - encoder.begin_group :change - end - encoder.text_token match[0,2], :change - encoder.text_token match[2...-2], :plain - encoder.text_token match[-2,2], :change - encoder.end_group :change unless line_kind - next unless match = scan(/.+/) - if options[:highlight_code] - content_scanner.tokenize match, :tokens => encoder - else - encoder.text_token match, :plain - end - next - elsif match = scan(/\+/) - encoder.begin_line line_kind = :insert - encoder.text_token match, :insert - next unless match = scan(/.+/) - if options[:highlight_code] - content_scanner.tokenize match, :tokens => encoder - else - encoder.text_token match, :plain - end - next - elsif match = scan(/-/) - deleted_lines += 1 - encoder.begin_line line_kind = :delete - encoder.text_token match, :delete - if options[:inline_diff] && deleted_lines == 1 && check(/(?>.*)\n\+(?>.*)$(?!\n\+)/) - content_scanner_entry_state = content_scanner.state - skip(/(.*)\n\+(.*)$/) - head, deletion, insertion, tail = diff self[1], self[2] - pre, deleted, post = content_scanner.tokenize [head, deletion, tail], :tokens => Tokens.new - encoder.tokens pre - unless deleted.empty? - encoder.begin_group :eyecatcher - encoder.tokens deleted - encoder.end_group :eyecatcher - end - encoder.tokens post - encoder.end_line line_kind - encoder.text_token "\n", :space - encoder.begin_line line_kind = :insert - encoder.text_token '+', :insert - content_scanner.state = content_scanner_entry_state || :initial - pre, inserted, post = content_scanner.tokenize [head, insertion, tail], :tokens => Tokens.new - encoder.tokens pre - unless inserted.empty? - encoder.begin_group :eyecatcher - encoder.tokens inserted - encoder.end_group :eyecatcher - end - encoder.tokens post - elsif match = scan(/.*/) - if options[:highlight_code] - if deleted_lines == 1 - content_scanner_entry_state = content_scanner.state - end - content_scanner.tokenize match, :tokens => encoder unless match.empty? - if !match?(/\n-/) - if match?(/\n\+/) - content_scanner.state = content_scanner_entry_state || :initial - end - content_scanner_entry_state = nil - end - else - encoder.text_token match, :plain - end - end - next - elsif match = scan(/ .*/) - if options[:highlight_code] - content_scanner.tokenize match, :tokens => encoder - else - encoder.text_token match, :plain - end - next - elsif match = scan(/.+/) - encoder.begin_line line_kind = :comment - encoder.text_token match, :plain - else - raise_inspect 'else case rached' - end - - when :added - if match = scan(/ \+/) - encoder.begin_line line_kind = :insert - encoder.text_token match, :insert - next unless match = scan(/.+/) - encoder.text_token match, :plain - else - state = :initial - next - end - end - - end - - encoder.end_line line_kind if line_kind - - encoder - end - - private - - def diff a, b - # i will be the index of the leftmost difference from the left. - i_max = [a.size, b.size].min - i = 0 - i += 1 while i < i_max && a[i] == b[i] - # j_min will be the index of the leftmost difference from the right. - j_min = i - i_max - # j will be the index of the rightmost difference from the right which - # does not precede the leftmost one from the left. - j = -1 - j -= 1 while j >= j_min && a[j] == b[j] - return a[0...i], a[i..j], b[i..j], (j < -1) ? a[j+1..-1] : '' - end - - end - -end -end diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/erb.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/erb.rb deleted file mode 100644 index 727a993bf..000000000 --- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/erb.rb +++ /dev/null @@ -1,81 +0,0 @@ -module CodeRay -module Scanners - - load :html - load :ruby - - # Scanner for HTML ERB templates. - class ERB < Scanner - - register_for :erb - title 'HTML ERB Template' - - KINDS_NOT_LOC = HTML::KINDS_NOT_LOC - - ERB_RUBY_BLOCK = / - (<%(?!%)[-=\#]?) - ((?> - [^\-%]* # normal* - (?> # special - (?: %(?!>) | -(?!%>) ) - [^\-%]* # normal* - )* - )) - ((?: -?%> )?) - /x # :nodoc: - - START_OF_ERB = / - <%(?!%) - /x # :nodoc: - - protected - - def setup - @ruby_scanner = CodeRay.scanner :ruby, :tokens => @tokens, :keep_tokens => true - @html_scanner = CodeRay.scanner :html, :tokens => @tokens, :keep_tokens => true, :keep_state => true - end - - def reset_instance - super - @html_scanner.reset - end - - def scan_tokens encoder, options - - until eos? - - if (match = scan_until(/(?=#{START_OF_ERB})/o) || scan_rest) and not match.empty? - @html_scanner.tokenize match, :tokens => encoder - - elsif match = scan(/#{ERB_RUBY_BLOCK}/o) - start_tag = self[1] - code = self[2] - end_tag = self[3] - - encoder.begin_group :inline - encoder.text_token start_tag, :inline_delimiter - - if start_tag == '<%#' - encoder.text_token code, :comment - else - @ruby_scanner.tokenize code, :tokens => encoder - end unless code.empty? - - encoder.text_token end_tag, :inline_delimiter unless end_tag.empty? - encoder.end_group :inline - - else - raise_inspect 'else-case reached!', encoder - - end - - end - - encoder - - end - - end - -end -end diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/groovy.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/groovy.rb deleted file mode 100644 index cf55daf22..000000000 --- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/groovy.rb +++ /dev/null @@ -1,255 +0,0 @@ -module CodeRay -module Scanners - - load :java - - # Scanner for Groovy. - class Groovy < Java - - register_for :groovy - - # TODO: check list of keywords - GROOVY_KEYWORDS = %w[ - as assert def in - ] # :nodoc: - KEYWORDS_EXPECTING_VALUE = WordList.new.add %w[ - case instanceof new return throw typeof while as assert in - ] # :nodoc: - GROOVY_MAGIC_VARIABLES = %w[ it ] # :nodoc: - - IDENT_KIND = Java::IDENT_KIND.dup. - add(GROOVY_KEYWORDS, :keyword). - add(GROOVY_MAGIC_VARIABLES, :local_variable) # :nodoc: - - ESCAPE = / [bfnrtv$\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x # :nodoc: - UNICODE_ESCAPE = / u[a-fA-F0-9]{4} /x # :nodoc: no 4-byte unicode chars? U[a-fA-F0-9]{8} - REGEXP_ESCAPE = / [bfnrtv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} | \d | [bBdDsSwW\/] /x # :nodoc: - - # TODO: interpretation inside ', ", / - STRING_CONTENT_PATTERN = { - "'" => /(?>\\[^\\'\n]+|[^\\'\n]+)+/, - '"' => /[^\\$"\n]+/, - "'''" => /(?>[^\\']+|'(?!''))+/, - '"""' => /(?>[^\\$"]+|"(?!""))+/, - '/' => /[^\\$\/\n]+/, - } # :nodoc: - - protected - - def scan_tokens encoder, options - - state = :initial - inline_block_stack = [] - inline_block_paren_depth = nil - string_delimiter = nil - import_clause = class_name_follows = last_token = after_def = false - value_expected = true - - until eos? - - case state - - when :initial - - if match = scan(/ \s+ | \\\n /x) - encoder.text_token match, :space - if match.index ?\n - import_clause = after_def = false - value_expected = true unless value_expected - end - next - - elsif match = scan(%r! // [^\n\\]* (?: \\. [^\n\\]* )* | /\* (?: .*? \*/ | .* ) !mx) - value_expected = true - after_def = false - encoder.text_token match, :comment - - elsif bol? && match = scan(/ \#!.* /x) - encoder.text_token match, :doctype - - elsif import_clause && match = scan(/ (?!as) #{IDENT} (?: \. #{IDENT} )* (?: \.\* )? /ox) - after_def = value_expected = false - encoder.text_token match, :include - - elsif match = scan(/ #{IDENT} | \[\] /ox) - kind = IDENT_KIND[match] - value_expected = (kind == :keyword) && KEYWORDS_EXPECTING_VALUE[match] - if last_token == '.' - kind = :ident - elsif class_name_follows - kind = :class - class_name_follows = false - elsif after_def && check(/\s*[({]/) - kind = :method - after_def = false - elsif kind == :ident && last_token != '?' && check(/:/) - kind = :key - else - class_name_follows = true if match == 'class' || (import_clause && match == 'as') - import_clause = match == 'import' - after_def = true if match == 'def' - end - encoder.text_token match, kind - - elsif match = scan(/;/) - import_clause = after_def = false - value_expected = true - encoder.text_token match, :operator - - elsif match = scan(/\{/) - class_name_follows = after_def = false - value_expected = true - encoder.text_token match, :operator - if !inline_block_stack.empty? - inline_block_paren_depth += 1 - end - - # TODO: ~'...', ~"..." and ~/.../ style regexps - elsif match = scan(/ \.\.<? | \*?\.(?!\d)@? | \.& | \?:? | [,?:(\[] | -[->] | \+\+ | - && | \|\| | \*\*=? | ==?~ | <=?>? | [-+*%^~&|>=!]=? | <<<?=? | >>>?=? /x) - value_expected = true - value_expected = :regexp if match == '~' - after_def = false - encoder.text_token match, :operator - - elsif match = scan(/ [)\]}] /x) - value_expected = after_def = false - if !inline_block_stack.empty? && match == '}' - inline_block_paren_depth -= 1 - if inline_block_paren_depth == 0 # closing brace of inline block reached - encoder.text_token match, :inline_delimiter - encoder.end_group :inline - state, string_delimiter, inline_block_paren_depth = inline_block_stack.pop - next - end - end - encoder.text_token match, :operator - - elsif check(/[\d.]/) - after_def = value_expected = false - if match = scan(/0[xX][0-9A-Fa-f]+/) - encoder.text_token match, :hex - elsif match = scan(/(?>0[0-7]+)(?![89.eEfF])/) - encoder.text_token match, :octal - elsif match = scan(/\d+[fFdD]|\d*\.\d+(?:[eE][+-]?\d+)?[fFdD]?|\d+[eE][+-]?\d+[fFdD]?/) - encoder.text_token match, :float - elsif match = scan(/\d+[lLgG]?/) - encoder.text_token match, :integer - end - - elsif match = scan(/'''|"""/) - after_def = value_expected = false - state = :multiline_string - encoder.begin_group :string - string_delimiter = match - encoder.text_token match, :delimiter - - # TODO: record.'name' syntax - elsif match = scan(/["']/) - after_def = value_expected = false - state = match == '/' ? :regexp : :string - encoder.begin_group state - string_delimiter = match - encoder.text_token match, :delimiter - - elsif value_expected && match = scan(/\//) - after_def = value_expected = false - encoder.begin_group :regexp - state = :regexp - string_delimiter = '/' - encoder.text_token match, :delimiter - - elsif match = scan(/ @ #{IDENT} /ox) - after_def = value_expected = false - encoder.text_token match, :annotation - - elsif match = scan(/\//) - after_def = false - value_expected = true - encoder.text_token match, :operator - - else - encoder.text_token getch, :error - - end - - when :string, :regexp, :multiline_string - if match = scan(STRING_CONTENT_PATTERN[string_delimiter]) - encoder.text_token match, :content - - elsif match = scan(state == :multiline_string ? /'''|"""/ : /["'\/]/) - encoder.text_token match, :delimiter - if state == :regexp - # TODO: regexp modifiers? s, m, x, i? - modifiers = scan(/[ix]+/) - encoder.text_token modifiers, :modifier if modifiers && !modifiers.empty? - end - state = :string if state == :multiline_string - encoder.end_group state - string_delimiter = nil - after_def = value_expected = false - state = :initial - next - - elsif (state == :string || state == :multiline_string) && - (match = scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox)) - if string_delimiter[0] == ?' && !(match == "\\\\" || match == "\\'") - encoder.text_token match, :content - else - encoder.text_token match, :char - end - elsif state == :regexp && match = scan(/ \\ (?: #{REGEXP_ESCAPE} | #{UNICODE_ESCAPE} ) /mox) - encoder.text_token match, :char - - elsif match = scan(/ \$ #{IDENT} /mox) - encoder.begin_group :inline - encoder.text_token '$', :inline_delimiter - match = match[1..-1] - encoder.text_token match, IDENT_KIND[match] - encoder.end_group :inline - next - elsif match = scan(/ \$ \{ /x) - encoder.begin_group :inline - encoder.text_token match, :inline_delimiter - inline_block_stack << [state, string_delimiter, inline_block_paren_depth] - inline_block_paren_depth = 1 - state = :initial - next - - elsif match = scan(/ \$ /mx) - encoder.text_token match, :content - - elsif match = scan(/ \\. /mx) - encoder.text_token match, :content # TODO: Shouldn't this be :error? - - elsif match = scan(/ \\ | \n /x) - encoder.end_group state - encoder.text_token match, :error - after_def = value_expected = false - state = :initial - - else - raise_inspect "else case \" reached; %p not handled." % peek(1), encoder - - end - - else - raise_inspect 'Unknown state', encoder - - end - - last_token = match unless [:space, :comment, :doctype].include? kind - - end - - if [:multiline_string, :string, :regexp].include? state - encoder.end_group state - end - - encoder - end - - end - -end -end diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/haml.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/haml.rb deleted file mode 100644 index 5433790a9..000000000 --- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/haml.rb +++ /dev/null @@ -1,168 +0,0 @@ -module CodeRay -module Scanners - - load :ruby - load :html - load :java_script - - class HAML < Scanner - - register_for :haml - title 'HAML Template' - - KINDS_NOT_LOC = HTML::KINDS_NOT_LOC - - protected - - def setup - super - @ruby_scanner = CodeRay.scanner :ruby, :tokens => @tokens, :keep_tokens => true - @embedded_ruby_scanner = CodeRay.scanner :ruby, :tokens => @tokens, :keep_tokens => true, :state => @ruby_scanner.interpreted_string_state - @html_scanner = CodeRay.scanner :html, :tokens => @tokens, :keep_tokens => true - end - - def scan_tokens encoder, options - - match = nil - code = '' - - until eos? - - if bol? - if match = scan(/!!!.*/) - encoder.text_token match, :doctype - next - end - - if match = scan(/(?>( *)(\/(?!\[if)|-\#|:javascript|:ruby|:\w+) *)(?=\n)/) - encoder.text_token match, :comment - - code = self[2] - if match = scan(/(?:\n+#{self[1]} .*)+/) - case code - when '/', '-#' - encoder.text_token match, :comment - when ':javascript' - # TODO: recognize #{...} snippets inside JavaScript - @java_script_scanner ||= CodeRay.scanner :java_script, :tokens => @tokens, :keep_tokens => true - @java_script_scanner.tokenize match, :tokens => encoder - when ':ruby' - @ruby_scanner.tokenize match, :tokens => encoder - when /:\w+/ - encoder.text_token match, :comment - else - raise 'else-case reached: %p' % [code] - end - end - end - - if match = scan(/ +/) - encoder.text_token match, :space - end - - if match = scan(/\/.*/) - encoder.text_token match, :comment - next - end - - if match = scan(/\\/) - encoder.text_token match, :plain - if match = scan(/.+/) - @html_scanner.tokenize match, :tokens => encoder - end - next - end - - tag = false - - if match = scan(/%[\w:]+\/?/) - encoder.text_token match, :tag - # if match = scan(/( +)(.+)/) - # encoder.text_token self[1], :space - # @embedded_ruby_scanner.tokenize self[2], :tokens => encoder - # end - tag = true - end - - while match = scan(/([.#])[-\w]*\w/) - encoder.text_token match, self[1] == '#' ? :constant : :class - tag = true - end - - if tag && match = scan(/(\()([^)]+)?(\))?/) - # TODO: recognize title=@title, class="widget_#{@widget.number}" - encoder.text_token self[1], :plain - @html_scanner.tokenize self[2], :tokens => encoder, :state => :attribute if self[2] - encoder.text_token self[3], :plain if self[3] - end - - if tag && match = scan(/\{/) - encoder.text_token match, :plain - - code = '' - level = 1 - while true - code << scan(/([^\{\},\n]|, *\n?)*/) - case match = getch - when '{' - level += 1 - code << match - when '}' - level -= 1 - if level > 0 - code << match - else - break - end - when "\n", ",", nil - break - end - end - @ruby_scanner.tokenize code, :tokens => encoder unless code.empty? - - encoder.text_token match, :plain if match - end - - if tag && match = scan(/(\[)([^\]\n]+)?(\])?/) - encoder.text_token self[1], :plain - @ruby_scanner.tokenize self[2], :tokens => encoder if self[2] - encoder.text_token self[3], :plain if self[3] - end - - if tag && match = scan(/\//) - encoder.text_token match, :tag - end - - if scan(/(>?<?[-=]|[&!]=|(& |!)|~)( *)([^,\n\|]+(?:(, *|\|(?=.|\n.*\|$))\n?[^,\n\|]*)*)?/) - encoder.text_token self[1] + self[3], :plain - if self[4] - if self[2] - @embedded_ruby_scanner.tokenize self[4], :tokens => encoder - else - @ruby_scanner.tokenize self[4], :tokens => encoder - end - end - elsif match = scan(/((?:<|><?)(?![!?\/\w]))?(.+)?/) - encoder.text_token self[1], :plain if self[1] - # TODO: recognize #{...} snippets - @html_scanner.tokenize self[2], :tokens => encoder if self[2] - end - - elsif match = scan(/.+/) - @html_scanner.tokenize match, :tokens => encoder - - end - - if match = scan(/\n/) - encoder.text_token match, :space - end - end - - encoder - - end - - end - -end -end diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/html.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/html.rb deleted file mode 100644 index 98d06fc95..000000000 --- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/html.rb +++ /dev/null @@ -1,253 +0,0 @@ -module CodeRay -module Scanners - - # HTML Scanner - # - # Alias: +xhtml+ - # - # See also: Scanners::XML - class HTML < Scanner - - register_for :html - - KINDS_NOT_LOC = [ - :comment, :doctype, :preprocessor, - :tag, :attribute_name, :operator, - :attribute_value, :string, - :plain, :entity, :error, - ] # :nodoc: - - EVENT_ATTRIBUTES = %w( - onabort onafterprint onbeforeprint onbeforeunload onblur oncanplay - oncanplaythrough onchange onclick oncontextmenu oncuechange ondblclick - ondrag ondragdrop ondragend ondragenter ondragleave ondragover - ondragstart ondrop ondurationchange onemptied onended onerror onfocus - onformchange onforminput onhashchange oninput oninvalid onkeydown - onkeypress onkeyup onload onloadeddata onloadedmetadata onloadstart - onmessage onmousedown onmousemove onmouseout onmouseover onmouseup - onmousewheel onmove onoffline ononline onpagehide onpageshow onpause - onplay onplaying onpopstate onprogress onratechange onreadystatechange - onredo onreset onresize onscroll onseeked onseeking onselect onshow - onstalled onstorage onsubmit onsuspend ontimeupdate onundo onunload - onvolumechange onwaiting - ) - - IN_ATTRIBUTE = WordList::CaseIgnoring.new(nil). - add(EVENT_ATTRIBUTES, :script) - - ATTR_NAME = /[\w.:-]+/ # :nodoc: - TAG_END = /\/?>/ # :nodoc: - HEX = /[0-9a-fA-F]/ # :nodoc: - ENTITY = / - & - (?: - \w+ - | - \# - (?: - \d+ - | - x#{HEX}+ - ) - ) - ; - /ox # :nodoc: - - PLAIN_STRING_CONTENT = { - "'" => /[^&'>\n]+/, - '"' => /[^&">\n]+/, - } # :nodoc: - - def reset - super - @state = :initial - @plain_string_content = nil - end - - protected - - def setup - @state = :initial - @plain_string_content = nil - end - - def scan_java_script encoder, code - if code && !code.empty? - @java_script_scanner ||= Scanners::JavaScript.new '', :keep_tokens => true - # encoder.begin_group :inline - @java_script_scanner.tokenize code, :tokens => encoder - # encoder.end_group :inline - end - end - - def scan_tokens encoder, options - state = options[:state] || @state - plain_string_content = @plain_string_content - in_tag = in_attribute = nil - - encoder.begin_group :string if state == :attribute_value_string - - until eos? - - if state != :in_special_tag && match = scan(/\s+/m) - encoder.text_token match, :space - - else - - case state - - when :initial - if match = scan(/<!--(?:.*?-->|.*)/m) - encoder.text_token match, :comment - elsif match = scan(/<!DOCTYPE(?:.*?>|.*)/m) - encoder.text_token match, :doctype - elsif match = scan(/<\?xml(?:.*?\?>|.*)/m) - encoder.text_token match, :preprocessor - elsif match = scan(/<\?(?:.*?\?>|.*)/m) - encoder.text_token match, :comment - elsif match = scan(/<\/[-\w.:]*>?/m) - in_tag = nil - encoder.text_token match, :tag - elsif match = scan(/<(?:(script)|[-\w.:]+)(>)?/m) - encoder.text_token match, :tag - in_tag = self[1] - if self[2] - state = :in_special_tag if in_tag - else - state = :attribute - end - elsif match = scan(/[^<>&]+/) - encoder.text_token match, :plain - elsif match = scan(/#{ENTITY}/ox) - encoder.text_token match, :entity - elsif match = scan(/[<>&]/) - in_tag = nil - encoder.text_token match, :error - else - raise_inspect '[BUG] else-case reached with state %p' % [state], encoder - end - - when :attribute - if match = scan(/#{TAG_END}/o) - encoder.text_token match, :tag - in_attribute = nil - if in_tag - state = :in_special_tag - else - state = :initial - end - elsif match = scan(/#{ATTR_NAME}/o) - in_attribute = IN_ATTRIBUTE[match] - encoder.text_token match, :attribute_name - state = :attribute_equal - else - in_tag = nil - encoder.text_token getch, :error - end - - when :attribute_equal - if match = scan(/=/) #/ - encoder.text_token match, :operator - state = :attribute_value - elsif scan(/#{ATTR_NAME}/o) || scan(/#{TAG_END}/o) - state = :attribute - next - else - encoder.text_token getch, :error - state = :attribute - end - - when :attribute_value - if match = scan(/#{ATTR_NAME}/o) - encoder.text_token match, :attribute_value - state = :attribute - elsif match = scan(/["']/) - if in_attribute == :script - encoder.begin_group :inline - encoder.text_token match, :inline_delimiter - if scan(/javascript:[ \t]*/) - encoder.text_token matched, :comment - end - code = scan_until(match == '"' ? /(?="|\z)/ : /(?='|\z)/) - scan_java_script encoder, code - match = scan(/["']/) - encoder.text_token match, :inline_delimiter if match - encoder.end_group :inline - state = :attribute - in_attribute = nil - else - encoder.begin_group :string - state = :attribute_value_string - plain_string_content = PLAIN_STRING_CONTENT[match] - encoder.text_token match, :delimiter - end - elsif match = scan(/#{TAG_END}/o) - encoder.text_token match, :tag - state = :initial - else - encoder.text_token getch, :error - end - - when :attribute_value_string - if match = scan(plain_string_content) - encoder.text_token match, :content - elsif match = scan(/['"]/) - encoder.text_token match, :delimiter - encoder.end_group :string - state = :attribute - elsif match = scan(/#{ENTITY}/ox) - encoder.text_token match, :entity - elsif match = scan(/&/) - encoder.text_token match, :content - elsif match = scan(/[\n>]/) - encoder.end_group :string - state = :initial - encoder.text_token match, :error - end - - when :in_special_tag - case in_tag - when 'script' - encoder.text_token match, :space if match = scan(/[ \t]*\n/) - if scan(/(\s*<!--)(?:(.*?)(-->)|(.*))/m) - code = self[2] || self[4] - closing = self[3] - encoder.text_token self[1], :comment - else - code = scan_until(/(?=(?:\n\s*)?<\/script>)|\z/) - closing = false - end - unless code.empty? - encoder.begin_group :inline - scan_java_script encoder, code - encoder.end_group :inline - end - encoder.text_token closing, :comment if closing - state = :initial - else - raise 'unknown special tag: %p' % [in_tag] - end - - else - raise_inspect 'Unknown state: %p' % [state], encoder - - end - - end - - end - - if options[:keep_state] - @state = state - @plain_string_content = plain_string_content - end - - encoder.end_group :string if state == :attribute_value_string - - encoder - end - - end - -end -end diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/java.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/java.rb deleted file mode 100644 index d3502e3a8..000000000 --- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/java.rb +++ /dev/null @@ -1,174 +0,0 @@ -module CodeRay -module Scanners - - # Scanner for Java. - class Java < Scanner - - register_for :java - - autoload :BuiltinTypes, 'coderay/scanners/java/builtin_types' - - # http://java.sun.com/docs/books/tutorial/java/nutsandbolts/_keywords.html - KEYWORDS = %w[ - assert break case catch continue default do else - finally for if instanceof import new package - return switch throw try typeof while - debugger export - ] # :nodoc: - RESERVED = %w[ const goto ] # :nodoc: - CONSTANTS = %w[ false null true ] # :nodoc: - MAGIC_VARIABLES = %w[ this super ] # :nodoc: - TYPES = %w[ - boolean byte char class double enum float int interface long - short void - ] << '[]' # :nodoc: because int[] should be highlighted as a type - DIRECTIVES = %w[ - abstract extends final implements native private protected public - static strictfp synchronized throws transient volatile - ] # :nodoc: - - IDENT_KIND = WordList.new(:ident). - add(KEYWORDS, :keyword). - add(RESERVED, :reserved). - add(CONSTANTS, :predefined_constant). - add(MAGIC_VARIABLES, :local_variable). - add(TYPES, :type). - add(BuiltinTypes::List, :predefined_type). - add(BuiltinTypes::List.select { |builtin| builtin[/(Error|Exception)$/] }, :exception). - add(DIRECTIVES, :directive) # :nodoc: - - ESCAPE = / [bfnrtv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x # :nodoc: - UNICODE_ESCAPE = / u[a-fA-F0-9]{4} | U[a-fA-F0-9]{8} /x # :nodoc: - STRING_CONTENT_PATTERN = { - "'" => /[^\\']+/, - '"' => /[^\\"]+/, - '/' => /[^\\\/]+/, - } # :nodoc: - IDENT = /[a-zA-Z_][A-Za-z_0-9]*/ # :nodoc: - - protected - - def scan_tokens encoder, options - - state = :initial - string_delimiter = nil - package_name_expected = false - class_name_follows = false - last_token_dot = false - - until eos? - - case state - - when :initial - - if match = scan(/ \s+ | \\\n /x) - encoder.text_token match, :space - next - - elsif match = scan(%r! // [^\n\\]* (?: \\. [^\n\\]* )* | /\* (?: .*? \*/ | .* ) !mx) - encoder.text_token match, :comment - next - - elsif package_name_expected && match = scan(/ #{IDENT} (?: \. #{IDENT} )* /ox) - encoder.text_token match, package_name_expected - - elsif match = scan(/ #{IDENT} | \[\] /ox) - kind = IDENT_KIND[match] - if last_token_dot - kind = :ident - elsif class_name_follows - kind = :class - class_name_follows = false - else - case match - when 'import' - package_name_expected = :include - when 'package' - package_name_expected = :namespace - when 'class', 'interface' - class_name_follows = true - end - end - encoder.text_token match, kind - - elsif match = scan(/ \.(?!\d) | [,?:()\[\]}] | -- | \+\+ | && | \|\| | \*\*=? | [-+*\/%^~&|<>=!]=? | <<<?=? | >>>?=? /x) - encoder.text_token match, :operator - - elsif match = scan(/;/) - package_name_expected = false - encoder.text_token match, :operator - - elsif match = scan(/\{/) - class_name_follows = false - encoder.text_token match, :operator - - elsif check(/[\d.]/) - if match = scan(/0[xX][0-9A-Fa-f]+/) - encoder.text_token match, :hex - elsif match = scan(/(?>0[0-7]+)(?![89.eEfF])/) - encoder.text_token match, :octal - elsif match = scan(/\d+[fFdD]|\d*\.\d+(?:[eE][+-]?\d+)?[fFdD]?|\d+[eE][+-]?\d+[fFdD]?/) - encoder.text_token match, :float - elsif match = scan(/\d+[lL]?/) - encoder.text_token match, :integer - end - - elsif match = scan(/["']/) - state = :string - encoder.begin_group state - string_delimiter = match - encoder.text_token match, :delimiter - - elsif match = scan(/ @ #{IDENT} /ox) - encoder.text_token match, :annotation - - else - encoder.text_token getch, :error - - end - - when :string - if match = scan(STRING_CONTENT_PATTERN[string_delimiter]) - encoder.text_token match, :content - elsif match = scan(/["'\/]/) - encoder.text_token match, :delimiter - encoder.end_group state - state = :initial - string_delimiter = nil - elsif state == :string && (match = scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox)) - if string_delimiter == "'" && !(match == "\\\\" || match == "\\'") - encoder.text_token match, :content - else - encoder.text_token match, :char - end - elsif match = scan(/\\./m) - encoder.text_token match, :content - elsif match = scan(/ \\ | $ /x) - encoder.end_group state - state = :initial - encoder.text_token match, :error - else - raise_inspect "else case \" reached; %p not handled." % peek(1), encoder - end - - else - raise_inspect 'Unknown state', encoder - - end - - last_token_dot = match == '.' - - end - - if state == :string - encoder.end_group state - end - - encoder - end - - end - -end -end diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/java/builtin_types.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/java/builtin_types.rb deleted file mode 100644 index d1b8b73be..000000000 --- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/java/builtin_types.rb +++ /dev/null @@ -1,421 +0,0 @@ -module CodeRay -module Scanners - - module Java::BuiltinTypes # :nodoc: - - #:nocov: - List = %w[ - AbstractAction AbstractBorder AbstractButton AbstractCellEditor AbstractCollection - AbstractColorChooserPanel AbstractDocument AbstractExecutorService AbstractInterruptibleChannel - AbstractLayoutCache AbstractList AbstractListModel AbstractMap AbstractMethodError AbstractPreferences - AbstractQueue AbstractQueuedSynchronizer AbstractSelectableChannel AbstractSelectionKey AbstractSelector - AbstractSequentialList AbstractSet AbstractSpinnerModel AbstractTableModel AbstractUndoableEdit - AbstractWriter AccessControlContext AccessControlException AccessController AccessException Accessible - AccessibleAction AccessibleAttributeSequence AccessibleBundle AccessibleComponent AccessibleContext - AccessibleEditableText AccessibleExtendedComponent AccessibleExtendedTable AccessibleExtendedText - AccessibleHyperlink AccessibleHypertext AccessibleIcon AccessibleKeyBinding AccessibleObject - AccessibleRelation AccessibleRelationSet AccessibleResourceBundle AccessibleRole AccessibleSelection - AccessibleState AccessibleStateSet AccessibleStreamable AccessibleTable AccessibleTableModelChange - AccessibleText AccessibleTextSequence AccessibleValue AccountException AccountExpiredException - AccountLockedException AccountNotFoundException Acl AclEntry AclNotFoundException Action ActionEvent - ActionListener ActionMap ActionMapUIResource Activatable ActivateFailedException ActivationDesc - ActivationException ActivationGroup ActivationGroupDesc ActivationGroupID ActivationGroup_Stub - ActivationID ActivationInstantiator ActivationMonitor ActivationSystem Activator ActiveEvent - ActivityCompletedException ActivityRequiredException Adjustable AdjustmentEvent AdjustmentListener - Adler32 AffineTransform AffineTransformOp AlgorithmParameterGenerator AlgorithmParameterGeneratorSpi - AlgorithmParameters AlgorithmParameterSpec AlgorithmParametersSpi AllPermission AlphaComposite - AlreadyBoundException AlreadyConnectedException AncestorEvent AncestorListener AnnotatedElement - Annotation AnnotationFormatError AnnotationTypeMismatchException AppConfigurationEntry Appendable Applet - AppletContext AppletInitializer AppletStub Arc2D Area AreaAveragingScaleFilter ArithmeticException Array - ArrayBlockingQueue ArrayIndexOutOfBoundsException ArrayList Arrays ArrayStoreException ArrayType - AssertionError AsyncBoxView AsynchronousCloseException AtomicBoolean AtomicInteger AtomicIntegerArray - AtomicIntegerFieldUpdater AtomicLong AtomicLongArray AtomicLongFieldUpdater AtomicMarkableReference - AtomicReference AtomicReferenceArray AtomicReferenceFieldUpdater AtomicStampedReference Attribute - AttributeChangeNotification AttributeChangeNotificationFilter AttributedCharacterIterator - AttributedString AttributeException AttributeInUseException AttributeList AttributeModificationException - AttributeNotFoundException Attributes AttributeSet AttributeSetUtilities AttributeValueExp AudioClip - AudioFileFormat AudioFileReader AudioFileWriter AudioFormat AudioInputStream AudioPermission AudioSystem - AuthenticationException AuthenticationNotSupportedException Authenticator AuthorizeCallback - AuthPermission AuthProvider Autoscroll AWTError AWTEvent AWTEventListener AWTEventListenerProxy - AWTEventMulticaster AWTException AWTKeyStroke AWTPermission BackingStoreException - BadAttributeValueExpException BadBinaryOpValueExpException BadLocationException BadPaddingException - BadStringOperationException BandCombineOp BandedSampleModel BaseRowSet BasicArrowButton BasicAttribute - BasicAttributes BasicBorders BasicButtonListener BasicButtonUI BasicCheckBoxMenuItemUI BasicCheckBoxUI - BasicColorChooserUI BasicComboBoxEditor BasicComboBoxRenderer BasicComboBoxUI BasicComboPopup - BasicControl BasicDesktopIconUI BasicDesktopPaneUI BasicDirectoryModel BasicEditorPaneUI - BasicFileChooserUI BasicFormattedTextFieldUI BasicGraphicsUtils BasicHTML BasicIconFactory - BasicInternalFrameTitlePane BasicInternalFrameUI BasicLabelUI BasicListUI BasicLookAndFeel - BasicMenuBarUI BasicMenuItemUI BasicMenuUI BasicOptionPaneUI BasicPanelUI BasicPasswordFieldUI - BasicPermission BasicPopupMenuSeparatorUI BasicPopupMenuUI BasicProgressBarUI BasicRadioButtonMenuItemUI - BasicRadioButtonUI BasicRootPaneUI BasicScrollBarUI BasicScrollPaneUI BasicSeparatorUI BasicSliderUI - BasicSpinnerUI BasicSplitPaneDivider BasicSplitPaneUI BasicStroke BasicTabbedPaneUI BasicTableHeaderUI - BasicTableUI BasicTextAreaUI BasicTextFieldUI BasicTextPaneUI BasicTextUI BasicToggleButtonUI - BasicToolBarSeparatorUI BasicToolBarUI BasicToolTipUI BasicTreeUI BasicViewportUI BatchUpdateException - BeanContext BeanContextChild BeanContextChildComponentProxy BeanContextChildSupport - BeanContextContainerProxy BeanContextEvent BeanContextMembershipEvent BeanContextMembershipListener - BeanContextProxy BeanContextServiceAvailableEvent BeanContextServiceProvider - BeanContextServiceProviderBeanInfo BeanContextServiceRevokedEvent BeanContextServiceRevokedListener - BeanContextServices BeanContextServicesListener BeanContextServicesSupport BeanContextSupport - BeanDescriptor BeanInfo Beans BevelBorder Bidi BigDecimal BigInteger BinaryRefAddr BindException Binding - BitSet Blob BlockingQueue BlockView BMPImageWriteParam Book Boolean BooleanControl Border BorderFactory - BorderLayout BorderUIResource BoundedRangeModel Box BoxLayout BoxView BreakIterator - BrokenBarrierException Buffer BufferCapabilities BufferedImage BufferedImageFilter BufferedImageOp - BufferedInputStream BufferedOutputStream BufferedReader BufferedWriter BufferOverflowException - BufferStrategy BufferUnderflowException Button ButtonGroup ButtonModel ButtonUI Byte - ByteArrayInputStream ByteArrayOutputStream ByteBuffer ByteChannel ByteLookupTable ByteOrder CachedRowSet - CacheRequest CacheResponse Calendar Callable CallableStatement Callback CallbackHandler - CancelablePrintJob CancellationException CancelledKeyException CannotProceedException - CannotRedoException CannotUndoException Canvas CardLayout Caret CaretEvent CaretListener CellEditor - CellEditorListener CellRendererPane Certificate CertificateEncodingException CertificateException - CertificateExpiredException CertificateFactory CertificateFactorySpi CertificateNotYetValidException - CertificateParsingException CertPath CertPathBuilder CertPathBuilderException CertPathBuilderResult - CertPathBuilderSpi CertPathParameters CertPathTrustManagerParameters CertPathValidator - CertPathValidatorException CertPathValidatorResult CertPathValidatorSpi CertSelector CertStore - CertStoreException CertStoreParameters CertStoreSpi ChangedCharSetException ChangeEvent ChangeListener - Channel Channels Character CharacterCodingException CharacterIterator CharArrayReader CharArrayWriter - CharBuffer CharConversionException CharSequence Charset CharsetDecoder CharsetEncoder CharsetProvider - Checkbox CheckboxGroup CheckboxMenuItem CheckedInputStream CheckedOutputStream Checksum Choice - ChoiceCallback ChoiceFormat Chromaticity Cipher CipherInputStream CipherOutputStream CipherSpi Class - ClassCastException ClassCircularityError ClassDefinition ClassDesc ClassFileTransformer ClassFormatError - ClassLoader ClassLoaderRepository ClassLoadingMXBean ClassNotFoundException Clip Clipboard - ClipboardOwner Clob Cloneable CloneNotSupportedException Closeable ClosedByInterruptException - ClosedChannelException ClosedSelectorException CMMException CoderMalfunctionError CoderResult CodeSigner - CodeSource CodingErrorAction CollationElementIterator CollationKey Collator Collection - CollectionCertStoreParameters Collections Color ColorChooserComponentFactory ColorChooserUI - ColorConvertOp ColorModel ColorSelectionModel ColorSpace ColorSupported ColorType ColorUIResource - ComboBoxEditor ComboBoxModel ComboBoxUI ComboPopup CommunicationException Comparable Comparator - CompilationMXBean Compiler CompletionService Component ComponentAdapter ComponentColorModel - ComponentEvent ComponentInputMap ComponentInputMapUIResource ComponentListener ComponentOrientation - ComponentSampleModel ComponentUI ComponentView Composite CompositeContext CompositeData - CompositeDataSupport CompositeName CompositeType CompositeView CompoundBorder CompoundControl - CompoundEdit CompoundName Compression ConcurrentHashMap ConcurrentLinkedQueue ConcurrentMap - ConcurrentModificationException Condition Configuration ConfigurationException ConfirmationCallback - ConnectException ConnectIOException Connection ConnectionEvent ConnectionEventListener - ConnectionPendingException ConnectionPoolDataSource ConsoleHandler Constructor Container - ContainerAdapter ContainerEvent ContainerListener ContainerOrderFocusTraversalPolicy ContentHandler - ContentHandlerFactory ContentModel Context ContextNotEmptyException ContextualRenderedImageFactory - Control ControlFactory ControllerEventListener ConvolveOp CookieHandler Copies CopiesSupported - CopyOnWriteArrayList CopyOnWriteArraySet CountDownLatch CounterMonitor CounterMonitorMBean CRC32 - CredentialException CredentialExpiredException CredentialNotFoundException CRL CRLException CRLSelector - CropImageFilter CSS CubicCurve2D Currency Cursor Customizer CyclicBarrier DatabaseMetaData DataBuffer - DataBufferByte DataBufferDouble DataBufferFloat DataBufferInt DataBufferShort DataBufferUShort - DataFlavor DataFormatException DatagramChannel DatagramPacket DatagramSocket DatagramSocketImpl - DatagramSocketImplFactory DataInput DataInputStream DataLine DataOutput DataOutputStream DataSource - DataTruncation DatatypeConfigurationException DatatypeConstants DatatypeFactory Date DateFormat - DateFormatSymbols DateFormatter DateTimeAtCompleted DateTimeAtCreation DateTimeAtProcessing - DateTimeSyntax DebugGraphics DecimalFormat DecimalFormatSymbols DefaultBoundedRangeModel - DefaultButtonModel DefaultCaret DefaultCellEditor DefaultColorSelectionModel DefaultComboBoxModel - DefaultDesktopManager DefaultEditorKit DefaultFocusManager DefaultFocusTraversalPolicy DefaultFormatter - DefaultFormatterFactory DefaultHighlighter DefaultKeyboardFocusManager DefaultListCellRenderer - DefaultListModel DefaultListSelectionModel DefaultLoaderRepository DefaultMenuLayout DefaultMetalTheme - DefaultMutableTreeNode DefaultPersistenceDelegate DefaultSingleSelectionModel DefaultStyledDocument - DefaultTableCellRenderer DefaultTableColumnModel DefaultTableModel DefaultTextUI DefaultTreeCellEditor - DefaultTreeCellRenderer DefaultTreeModel DefaultTreeSelectionModel Deflater DeflaterOutputStream Delayed - DelayQueue DelegationPermission Deprecated Descriptor DescriptorAccess DescriptorSupport DESedeKeySpec - DesignMode DESKeySpec DesktopIconUI DesktopManager DesktopPaneUI Destination Destroyable - DestroyFailedException DGC DHGenParameterSpec DHKey DHParameterSpec DHPrivateKey DHPrivateKeySpec - DHPublicKey DHPublicKeySpec Dialog Dictionary DigestException DigestInputStream DigestOutputStream - Dimension Dimension2D DimensionUIResource DirContext DirectColorModel DirectoryManager DirObjectFactory - DirStateFactory DisplayMode DnDConstants Doc DocAttribute DocAttributeSet DocFlavor DocPrintJob Document - DocumentBuilder DocumentBuilderFactory Documented DocumentEvent DocumentFilter DocumentListener - DocumentName DocumentParser DomainCombiner DOMLocator DOMResult DOMSource Double DoubleBuffer - DragGestureEvent DragGestureListener DragGestureRecognizer DragSource DragSourceAdapter - DragSourceContext DragSourceDragEvent DragSourceDropEvent DragSourceEvent DragSourceListener - DragSourceMotionListener Driver DriverManager DriverPropertyInfo DropTarget DropTargetAdapter - DropTargetContext DropTargetDragEvent DropTargetDropEvent DropTargetEvent DropTargetListener DSAKey - DSAKeyPairGenerator DSAParameterSpec DSAParams DSAPrivateKey DSAPrivateKeySpec DSAPublicKey - DSAPublicKeySpec DTD DTDConstants DuplicateFormatFlagsException Duration DynamicMBean ECField ECFieldF2m - ECFieldFp ECGenParameterSpec ECKey ECParameterSpec ECPoint ECPrivateKey ECPrivateKeySpec ECPublicKey - ECPublicKeySpec EditorKit Element ElementIterator ElementType Ellipse2D EllipticCurve EmptyBorder - EmptyStackException EncodedKeySpec Encoder EncryptedPrivateKeyInfo Entity Enum - EnumConstantNotPresentException EnumControl Enumeration EnumMap EnumSet EnumSyntax EOFException Error - ErrorListener ErrorManager EtchedBorder Event EventContext EventDirContext EventHandler EventListener - EventListenerList EventListenerProxy EventObject EventQueue EventSetDescriptor Exception - ExceptionInInitializerError ExceptionListener Exchanger ExecutionException Executor - ExecutorCompletionService Executors ExecutorService ExemptionMechanism ExemptionMechanismException - ExemptionMechanismSpi ExpandVetoException ExportException Expression ExtendedRequest ExtendedResponse - Externalizable FactoryConfigurationError FailedLoginException FeatureDescriptor Fidelity Field - FieldPosition FieldView File FileCacheImageInputStream FileCacheImageOutputStream FileChannel - FileChooserUI FileDescriptor FileDialog FileFilter FileHandler FileImageInputStream - FileImageOutputStream FileInputStream FileLock FileLockInterruptionException FilenameFilter FileNameMap - FileNotFoundException FileOutputStream FilePermission FileReader FileSystemView FileView FileWriter - Filter FilteredImageSource FilteredRowSet FilterInputStream FilterOutputStream FilterReader FilterWriter - Finishings FixedHeightLayoutCache FlatteningPathIterator FlavorEvent FlavorException FlavorListener - FlavorMap FlavorTable Float FloatBuffer FloatControl FlowLayout FlowView Flushable FocusAdapter - FocusEvent FocusListener FocusManager FocusTraversalPolicy Font FontFormatException FontMetrics - FontRenderContext FontUIResource Format FormatConversionProvider FormatFlagsConversionMismatchException - Formattable FormattableFlags Formatter FormatterClosedException FormSubmitEvent FormView Frame Future - FutureTask GapContent GarbageCollectorMXBean GatheringByteChannel GaugeMonitor GaugeMonitorMBean - GeneralPath GeneralSecurityException GenericArrayType GenericDeclaration GenericSignatureFormatError - GlyphJustificationInfo GlyphMetrics GlyphVector GlyphView GradientPaint GraphicAttribute Graphics - Graphics2D GraphicsConfigTemplate GraphicsConfiguration GraphicsDevice GraphicsEnvironment GrayFilter - GregorianCalendar GridBagConstraints GridBagLayout GridLayout Group Guard GuardedObject GZIPInputStream - GZIPOutputStream Handler HandshakeCompletedEvent HandshakeCompletedListener HasControls HashAttributeSet - HashDocAttributeSet HashMap HashPrintJobAttributeSet HashPrintRequestAttributeSet - HashPrintServiceAttributeSet HashSet Hashtable HeadlessException HierarchyBoundsAdapter - HierarchyBoundsListener HierarchyEvent HierarchyListener Highlighter HostnameVerifier HTML HTMLDocument - HTMLEditorKit HTMLFrameHyperlinkEvent HTMLWriter HttpRetryException HttpsURLConnection HttpURLConnection - HyperlinkEvent HyperlinkListener ICC_ColorSpace ICC_Profile ICC_ProfileGray ICC_ProfileRGB Icon - IconUIResource IconView Identity IdentityHashMap IdentityScope IIOByteBuffer IIOException IIOImage - IIOInvalidTreeException IIOMetadata IIOMetadataController IIOMetadataFormat IIOMetadataFormatImpl - IIOMetadataNode IIOParam IIOParamController IIOReadProgressListener IIOReadUpdateListener - IIOReadWarningListener IIORegistry IIOServiceProvider IIOWriteProgressListener IIOWriteWarningListener - IllegalAccessError IllegalAccessException IllegalArgumentException IllegalBlockingModeException - IllegalBlockSizeException IllegalCharsetNameException IllegalClassFormatException - IllegalComponentStateException IllegalFormatCodePointException IllegalFormatConversionException - IllegalFormatException IllegalFormatFlagsException IllegalFormatPrecisionException - IllegalFormatWidthException IllegalMonitorStateException IllegalPathStateException - IllegalSelectorException IllegalStateException IllegalThreadStateException Image ImageCapabilities - ImageConsumer ImageFilter ImageGraphicAttribute ImageIcon ImageInputStream ImageInputStreamImpl - ImageInputStreamSpi ImageIO ImageObserver ImageOutputStream ImageOutputStreamImpl ImageOutputStreamSpi - ImageProducer ImageReader ImageReaderSpi ImageReaderWriterSpi ImageReadParam ImageTranscoder - ImageTranscoderSpi ImageTypeSpecifier ImageView ImageWriteParam ImageWriter ImageWriterSpi - ImagingOpException IncompatibleClassChangeError IncompleteAnnotationException IndexColorModel - IndexedPropertyChangeEvent IndexedPropertyDescriptor IndexOutOfBoundsException Inet4Address Inet6Address - InetAddress InetSocketAddress Inflater InflaterInputStream InheritableThreadLocal Inherited - InitialContext InitialContextFactory InitialContextFactoryBuilder InitialDirContext InitialLdapContext - InlineView InputContext InputEvent InputMap InputMapUIResource InputMethod InputMethodContext - InputMethodDescriptor InputMethodEvent InputMethodHighlight InputMethodListener InputMethodRequests - InputMismatchException InputStream InputStreamReader InputSubset InputVerifier Insets InsetsUIResource - InstanceAlreadyExistsException InstanceNotFoundException InstantiationError InstantiationException - Instrument Instrumentation InsufficientResourcesException IntBuffer Integer IntegerSyntax InternalError - InternalFrameAdapter InternalFrameEvent InternalFrameFocusTraversalPolicy InternalFrameListener - InternalFrameUI InternationalFormatter InterruptedException InterruptedIOException - InterruptedNamingException InterruptibleChannel IntrospectionException Introspector - InvalidActivityException InvalidAlgorithmParameterException InvalidApplicationException - InvalidAttributeIdentifierException InvalidAttributesException InvalidAttributeValueException - InvalidClassException InvalidDnDOperationException InvalidKeyException InvalidKeySpecException - InvalidMarkException InvalidMidiDataException InvalidNameException InvalidObjectException - InvalidOpenTypeException InvalidParameterException InvalidParameterSpecException - InvalidPreferencesFormatException InvalidPropertiesFormatException InvalidRelationIdException - InvalidRelationServiceException InvalidRelationTypeException InvalidRoleInfoException - InvalidRoleValueException InvalidSearchControlsException InvalidSearchFilterException - InvalidTargetObjectTypeException InvalidTransactionException InvocationEvent InvocationHandler - InvocationTargetException IOException ItemEvent ItemListener ItemSelectable Iterable Iterator - IvParameterSpec JApplet JarEntry JarException JarFile JarInputStream JarOutputStream JarURLConnection - JButton JCheckBox JCheckBoxMenuItem JColorChooser JComboBox JComponent JdbcRowSet JDesktopPane JDialog - JEditorPane JFileChooser JFormattedTextField JFrame JInternalFrame JLabel JLayeredPane JList JMenu - JMenuBar JMenuItem JMException JMRuntimeException JMXAuthenticator JMXConnectionNotification - JMXConnector JMXConnectorFactory JMXConnectorProvider JMXConnectorServer JMXConnectorServerFactory - JMXConnectorServerMBean JMXConnectorServerProvider JMXPrincipal JMXProviderException - JMXServerErrorException JMXServiceURL JobAttributes JobHoldUntil JobImpressions JobImpressionsCompleted - JobImpressionsSupported JobKOctets JobKOctetsProcessed JobKOctetsSupported JobMediaSheets - JobMediaSheetsCompleted JobMediaSheetsSupported JobMessageFromOperator JobName JobOriginatingUserName - JobPriority JobPrioritySupported JobSheets JobState JobStateReason JobStateReasons Joinable JoinRowSet - JOptionPane JPanel JPasswordField JPEGHuffmanTable JPEGImageReadParam JPEGImageWriteParam JPEGQTable - JPopupMenu JProgressBar JRadioButton JRadioButtonMenuItem JRootPane JScrollBar JScrollPane JSeparator - JSlider JSpinner JSplitPane JTabbedPane JTable JTableHeader JTextArea JTextComponent JTextField - JTextPane JToggleButton JToolBar JToolTip JTree JViewport JWindow KerberosKey KerberosPrincipal - KerberosTicket Kernel Key KeyAdapter KeyAgreement KeyAgreementSpi KeyAlreadyExistsException - KeyboardFocusManager KeyEvent KeyEventDispatcher KeyEventPostProcessor KeyException KeyFactory - KeyFactorySpi KeyGenerator KeyGeneratorSpi KeyListener KeyManagementException KeyManager - KeyManagerFactory KeyManagerFactorySpi Keymap KeyPair KeyPairGenerator KeyPairGeneratorSpi KeyRep - KeySpec KeyStore KeyStoreBuilderParameters KeyStoreException KeyStoreSpi KeyStroke Label LabelUI - LabelView LanguageCallback LastOwnerException LayeredHighlighter LayoutFocusTraversalPolicy - LayoutManager LayoutManager2 LayoutQueue LDAPCertStoreParameters LdapContext LdapName - LdapReferralException Lease Level LimitExceededException Line Line2D LineBorder LineBreakMeasurer - LineEvent LineListener LineMetrics LineNumberInputStream LineNumberReader LineUnavailableException - LinkageError LinkedBlockingQueue LinkedHashMap LinkedHashSet LinkedList LinkException LinkLoopException - LinkRef List ListCellRenderer ListDataEvent ListDataListener ListenerNotFoundException ListIterator - ListModel ListResourceBundle ListSelectionEvent ListSelectionListener ListSelectionModel ListUI ListView - LoaderHandler Locale LocateRegistry Lock LockSupport Logger LoggingMXBean LoggingPermission LoginContext - LoginException LoginModule LogManager LogRecord LogStream Long LongBuffer LookAndFeel LookupOp - LookupTable Mac MacSpi MalformedInputException MalformedLinkException MalformedObjectNameException - MalformedParameterizedTypeException MalformedURLException ManagementFactory ManagementPermission - ManageReferralControl ManagerFactoryParameters Manifest Map MappedByteBuffer MarshalException - MarshalledObject MaskFormatter Matcher MatchResult Math MathContext MatteBorder MBeanAttributeInfo - MBeanConstructorInfo MBeanException MBeanFeatureInfo MBeanInfo MBeanNotificationInfo MBeanOperationInfo - MBeanParameterInfo MBeanPermission MBeanRegistration MBeanRegistrationException MBeanServer - MBeanServerBuilder MBeanServerConnection MBeanServerDelegate MBeanServerDelegateMBean MBeanServerFactory - MBeanServerForwarder MBeanServerInvocationHandler MBeanServerNotification MBeanServerNotificationFilter - MBeanServerPermission MBeanTrustPermission Media MediaName MediaPrintableArea MediaSize MediaSizeName - MediaTracker MediaTray Member MemoryCacheImageInputStream MemoryCacheImageOutputStream MemoryHandler - MemoryImageSource MemoryManagerMXBean MemoryMXBean MemoryNotificationInfo MemoryPoolMXBean MemoryType - MemoryUsage Menu MenuBar MenuBarUI MenuComponent MenuContainer MenuDragMouseEvent MenuDragMouseListener - MenuElement MenuEvent MenuItem MenuItemUI MenuKeyEvent MenuKeyListener MenuListener MenuSelectionManager - MenuShortcut MessageDigest MessageDigestSpi MessageFormat MetaEventListener MetalBorders MetalButtonUI - MetalCheckBoxIcon MetalCheckBoxUI MetalComboBoxButton MetalComboBoxEditor MetalComboBoxIcon - MetalComboBoxUI MetalDesktopIconUI MetalFileChooserUI MetalIconFactory MetalInternalFrameTitlePane - MetalInternalFrameUI MetalLabelUI MetalLookAndFeel MetalMenuBarUI MetalPopupMenuSeparatorUI - MetalProgressBarUI MetalRadioButtonUI MetalRootPaneUI MetalScrollBarUI MetalScrollButton - MetalScrollPaneUI MetalSeparatorUI MetalSliderUI MetalSplitPaneUI MetalTabbedPaneUI MetalTextFieldUI - MetalTheme MetalToggleButtonUI MetalToolBarUI MetalToolTipUI MetalTreeUI MetaMessage Method - MethodDescriptor MGF1ParameterSpec MidiChannel MidiDevice MidiDeviceProvider MidiEvent MidiFileFormat - MidiFileReader MidiFileWriter MidiMessage MidiSystem MidiUnavailableException MimeTypeParseException - MinimalHTMLWriter MissingFormatArgumentException MissingFormatWidthException MissingResourceException - Mixer MixerProvider MLet MLetMBean ModelMBean ModelMBeanAttributeInfo ModelMBeanConstructorInfo - ModelMBeanInfo ModelMBeanInfoSupport ModelMBeanNotificationBroadcaster ModelMBeanNotificationInfo - ModelMBeanOperationInfo ModificationItem Modifier Monitor MonitorMBean MonitorNotification - MonitorSettingException MouseAdapter MouseDragGestureRecognizer MouseEvent MouseInfo MouseInputAdapter - MouseInputListener MouseListener MouseMotionAdapter MouseMotionListener MouseWheelEvent - MouseWheelListener MultiButtonUI MulticastSocket MultiColorChooserUI MultiComboBoxUI MultiDesktopIconUI - MultiDesktopPaneUI MultiDoc MultiDocPrintJob MultiDocPrintService MultiFileChooserUI - MultiInternalFrameUI MultiLabelUI MultiListUI MultiLookAndFeel MultiMenuBarUI MultiMenuItemUI - MultiOptionPaneUI MultiPanelUI MultiPixelPackedSampleModel MultipleDocumentHandling MultipleMaster - MultiPopupMenuUI MultiProgressBarUI MultiRootPaneUI MultiScrollBarUI MultiScrollPaneUI MultiSeparatorUI - MultiSliderUI MultiSpinnerUI MultiSplitPaneUI MultiTabbedPaneUI MultiTableHeaderUI MultiTableUI - MultiTextUI MultiToolBarUI MultiToolTipUI MultiTreeUI MultiViewportUI MutableAttributeSet - MutableComboBoxModel MutableTreeNode Name NameAlreadyBoundException NameCallback NameClassPair - NameNotFoundException NameParser NamespaceChangeListener NamespaceContext Naming NamingEnumeration - NamingEvent NamingException NamingExceptionEvent NamingListener NamingManager NamingSecurityException - NavigationFilter NegativeArraySizeException NetPermission NetworkInterface NoClassDefFoundError - NoConnectionPendingException NodeChangeEvent NodeChangeListener NoInitialContextException - NoninvertibleTransformException NonReadableChannelException NonWritableChannelException - NoPermissionException NoRouteToHostException NoSuchAlgorithmException NoSuchAttributeException - NoSuchElementException NoSuchFieldError NoSuchFieldException NoSuchMethodError NoSuchMethodException - NoSuchObjectException NoSuchPaddingException NoSuchProviderException NotActiveException - NotBoundException NotCompliantMBeanException NotContextException Notification NotificationBroadcaster - NotificationBroadcasterSupport NotificationEmitter NotificationFilter NotificationFilterSupport - NotificationListener NotificationResult NotOwnerException NotSerializableException NotYetBoundException - NotYetConnectedException NullCipher NullPointerException Number NumberFormat NumberFormatException - NumberFormatter NumberOfDocuments NumberOfInterveningJobs NumberUp NumberUpSupported NumericShaper - OAEPParameterSpec Object ObjectChangeListener ObjectFactory ObjectFactoryBuilder ObjectInput - ObjectInputStream ObjectInputValidation ObjectInstance ObjectName ObjectOutput ObjectOutputStream - ObjectStreamClass ObjectStreamConstants ObjectStreamException ObjectStreamField ObjectView ObjID - Observable Observer OceanTheme OpenDataException OpenMBeanAttributeInfo OpenMBeanAttributeInfoSupport - OpenMBeanConstructorInfo OpenMBeanConstructorInfoSupport OpenMBeanInfo OpenMBeanInfoSupport - OpenMBeanOperationInfo OpenMBeanOperationInfoSupport OpenMBeanParameterInfo - OpenMBeanParameterInfoSupport OpenType OperatingSystemMXBean Operation OperationNotSupportedException - OperationsException Option OptionalDataException OptionPaneUI OrientationRequested OutOfMemoryError - OutputDeviceAssigned OutputKeys OutputStream OutputStreamWriter OverlappingFileLockException - OverlayLayout Override Owner Pack200 Package PackedColorModel Pageable PageAttributes - PagedResultsControl PagedResultsResponseControl PageFormat PageRanges PagesPerMinute PagesPerMinuteColor - Paint PaintContext PaintEvent Panel PanelUI Paper ParagraphView ParameterBlock ParameterDescriptor - ParameterizedType ParameterMetaData ParseException ParsePosition Parser ParserConfigurationException - ParserDelegator PartialResultException PasswordAuthentication PasswordCallback PasswordView Patch - PathIterator Pattern PatternSyntaxException PBEKey PBEKeySpec PBEParameterSpec PDLOverrideSupported - Permission PermissionCollection Permissions PersistenceDelegate PersistentMBean PhantomReference Pipe - PipedInputStream PipedOutputStream PipedReader PipedWriter PixelGrabber PixelInterleavedSampleModel - PKCS8EncodedKeySpec PKIXBuilderParameters PKIXCertPathBuilderResult PKIXCertPathChecker - PKIXCertPathValidatorResult PKIXParameters PlainDocument PlainView Point Point2D PointerInfo Policy - PolicyNode PolicyQualifierInfo Polygon PooledConnection Popup PopupFactory PopupMenu PopupMenuEvent - PopupMenuListener PopupMenuUI Port PortableRemoteObject PortableRemoteObjectDelegate - PortUnreachableException Position Predicate PreferenceChangeEvent PreferenceChangeListener Preferences - PreferencesFactory PreparedStatement PresentationDirection Principal Printable PrinterAbortException - PrinterException PrinterGraphics PrinterInfo PrinterIOException PrinterIsAcceptingJobs PrinterJob - PrinterLocation PrinterMakeAndModel PrinterMessageFromOperator PrinterMoreInfo - PrinterMoreInfoManufacturer PrinterName PrinterResolution PrinterState PrinterStateReason - PrinterStateReasons PrinterURI PrintEvent PrintException PrintGraphics PrintJob PrintJobAdapter - PrintJobAttribute PrintJobAttributeEvent PrintJobAttributeListener PrintJobAttributeSet PrintJobEvent - PrintJobListener PrintQuality PrintRequestAttribute PrintRequestAttributeSet PrintService - PrintServiceAttribute PrintServiceAttributeEvent PrintServiceAttributeListener PrintServiceAttributeSet - PrintServiceLookup PrintStream PrintWriter PriorityBlockingQueue PriorityQueue PrivateClassLoader - PrivateCredentialPermission PrivateKey PrivateMLet PrivilegedAction PrivilegedActionException - PrivilegedExceptionAction Process ProcessBuilder ProfileDataException ProgressBarUI ProgressMonitor - ProgressMonitorInputStream Properties PropertyChangeEvent PropertyChangeListener - PropertyChangeListenerProxy PropertyChangeSupport PropertyDescriptor PropertyEditor - PropertyEditorManager PropertyEditorSupport PropertyPermission PropertyResourceBundle - PropertyVetoException ProtectionDomain ProtocolException Provider ProviderException Proxy ProxySelector - PSource PSSParameterSpec PublicKey PushbackInputStream PushbackReader QName QuadCurve2D Query QueryEval - QueryExp Queue QueuedJobCount Random RandomAccess RandomAccessFile Raster RasterFormatException RasterOp - RC2ParameterSpec RC5ParameterSpec Rdn Readable ReadableByteChannel Reader ReadOnlyBufferException - ReadWriteLock RealmCallback RealmChoiceCallback Receiver Rectangle Rectangle2D RectangularShape - ReentrantLock ReentrantReadWriteLock Ref RefAddr Reference Referenceable ReferenceQueue - ReferenceUriSchemesSupported ReferralException ReflectionException ReflectPermission Refreshable - RefreshFailedException Region RegisterableService Registry RegistryHandler RejectedExecutionException - RejectedExecutionHandler Relation RelationException RelationNotFoundException RelationNotification - RelationService RelationServiceMBean RelationServiceNotRegisteredException RelationSupport - RelationSupportMBean RelationType RelationTypeNotFoundException RelationTypeSupport Remote RemoteCall - RemoteException RemoteObject RemoteObjectInvocationHandler RemoteRef RemoteServer RemoteStub - RenderableImage RenderableImageOp RenderableImageProducer RenderContext RenderedImage - RenderedImageFactory Renderer RenderingHints RepaintManager ReplicateScaleFilter RequestingUserName - RequiredModelMBean RescaleOp ResolutionSyntax Resolver ResolveResult ResourceBundle ResponseCache Result - ResultSet ResultSetMetaData Retention RetentionPolicy ReverbType RGBImageFilter RMIClassLoader - RMIClassLoaderSpi RMIClientSocketFactory RMIConnection RMIConnectionImpl RMIConnectionImpl_Stub - RMIConnector RMIConnectorServer RMIFailureHandler RMIIIOPServerImpl RMIJRMPServerImpl - RMISecurityException RMISecurityManager RMIServer RMIServerImpl RMIServerImpl_Stub - RMIServerSocketFactory RMISocketFactory Robot Role RoleInfo RoleInfoNotFoundException RoleList - RoleNotFoundException RoleResult RoleStatus RoleUnresolved RoleUnresolvedList RootPaneContainer - RootPaneUI RoundingMode RoundRectangle2D RowMapper RowSet RowSetEvent RowSetInternal RowSetListener - RowSetMetaData RowSetMetaDataImpl RowSetReader RowSetWarning RowSetWriter RSAKey RSAKeyGenParameterSpec - RSAMultiPrimePrivateCrtKey RSAMultiPrimePrivateCrtKeySpec RSAOtherPrimeInfo RSAPrivateCrtKey - RSAPrivateCrtKeySpec RSAPrivateKey RSAPrivateKeySpec RSAPublicKey RSAPublicKeySpec RTFEditorKit - RuleBasedCollator Runnable Runtime RuntimeErrorException RuntimeException RuntimeMBeanException - RuntimeMXBean RuntimeOperationsException RuntimePermission SampleModel Sasl SaslClient SaslClientFactory - SaslException SaslServer SaslServerFactory Savepoint SAXParser SAXParserFactory SAXResult SAXSource - SAXTransformerFactory Scanner ScatteringByteChannel ScheduledExecutorService ScheduledFuture - ScheduledThreadPoolExecutor Schema SchemaFactory SchemaFactoryLoader SchemaViolationException Scrollable - Scrollbar ScrollBarUI ScrollPane ScrollPaneAdjustable ScrollPaneConstants ScrollPaneLayout ScrollPaneUI - SealedObject SearchControls SearchResult SecretKey SecretKeyFactory SecretKeyFactorySpi SecretKeySpec - SecureCacheResponse SecureClassLoader SecureRandom SecureRandomSpi Security SecurityException - SecurityManager SecurityPermission Segment SelectableChannel SelectionKey Selector SelectorProvider - Semaphore SeparatorUI Sequence SequenceInputStream Sequencer SerialArray SerialBlob SerialClob - SerialDatalink SerialException Serializable SerializablePermission SerialJavaObject SerialRef - SerialStruct ServerCloneException ServerError ServerException ServerNotActiveException ServerRef - ServerRuntimeException ServerSocket ServerSocketChannel ServerSocketFactory ServiceNotFoundException - ServicePermission ServiceRegistry ServiceUI ServiceUIFactory ServiceUnavailableException Set - SetOfIntegerSyntax Severity Shape ShapeGraphicAttribute SheetCollate Short ShortBuffer - ShortBufferException ShortLookupTable ShortMessage Sides Signature SignatureException SignatureSpi - SignedObject Signer SimpleAttributeSet SimpleBeanInfo SimpleDateFormat SimpleDoc SimpleFormatter - SimpleTimeZone SimpleType SinglePixelPackedSampleModel SingleSelectionModel Size2DSyntax - SizeLimitExceededException SizeRequirements SizeSequence Skeleton SkeletonMismatchException - SkeletonNotFoundException SliderUI Socket SocketAddress SocketChannel SocketException SocketFactory - SocketHandler SocketImpl SocketImplFactory SocketOptions SocketPermission SocketSecurityException - SocketTimeoutException SoftBevelBorder SoftReference SortControl SortedMap SortedSet - SortingFocusTraversalPolicy SortKey SortResponseControl Soundbank SoundbankReader SoundbankResource - Source SourceDataLine SourceLocator SpinnerDateModel SpinnerListModel SpinnerModel SpinnerNumberModel - SpinnerUI SplitPaneUI Spring SpringLayout SQLData SQLException SQLInput SQLInputImpl SQLOutput - SQLOutputImpl SQLPermission SQLWarning SSLContext SSLContextSpi SSLEngine SSLEngineResult SSLException - SSLHandshakeException SSLKeyException SSLPeerUnverifiedException SSLPermission SSLProtocolException - SslRMIClientSocketFactory SslRMIServerSocketFactory SSLServerSocket SSLServerSocketFactory SSLSession - SSLSessionBindingEvent SSLSessionBindingListener SSLSessionContext SSLSocket SSLSocketFactory Stack - StackOverflowError StackTraceElement StandardMBean StartTlsRequest StartTlsResponse StateEdit - StateEditable StateFactory Statement StreamCorruptedException StreamHandler StreamPrintService - StreamPrintServiceFactory StreamResult StreamSource StreamTokenizer StrictMath String StringBuffer - StringBufferInputStream StringBuilder StringCharacterIterator StringContent - StringIndexOutOfBoundsException StringMonitor StringMonitorMBean StringReader StringRefAddr - StringSelection StringTokenizer StringValueExp StringWriter Stroke Struct Stub StubDelegate - StubNotFoundException Style StyleConstants StyleContext StyledDocument StyledEditorKit StyleSheet - Subject SubjectDelegationPermission SubjectDomainCombiner SupportedValuesAttribute SuppressWarnings - SwingConstants SwingPropertyChangeSupport SwingUtilities SyncFactory SyncFactoryException - SyncFailedException SynchronousQueue SyncProvider SyncProviderException SyncResolver SynthConstants - SynthContext Synthesizer SynthGraphicsUtils SynthLookAndFeel SynthPainter SynthStyle SynthStyleFactory - SysexMessage System SystemColor SystemFlavorMap TabableView TabbedPaneUI TabExpander TableCellEditor - TableCellRenderer TableColumn TableColumnModel TableColumnModelEvent TableColumnModelListener - TableHeaderUI TableModel TableModelEvent TableModelListener TableUI TableView TabSet TabStop TabularData - TabularDataSupport TabularType TagElement Target TargetDataLine TargetedNotification Templates - TemplatesHandler TextAction TextArea TextAttribute TextComponent TextEvent TextField TextHitInfo - TextInputCallback TextLayout TextListener TextMeasurer TextOutputCallback TextSyntax TextUI TexturePaint - Thread ThreadDeath ThreadFactory ThreadGroup ThreadInfo ThreadLocal ThreadMXBean ThreadPoolExecutor - Throwable Tie TileObserver Time TimeLimitExceededException TimeoutException Timer - TimerAlarmClockNotification TimerMBean TimerNotification TimerTask Timestamp TimeUnit TimeZone - TitledBorder ToolBarUI Toolkit ToolTipManager ToolTipUI TooManyListenersException Track - TransactionalWriter TransactionRequiredException TransactionRolledbackException Transferable - TransferHandler TransformAttribute Transformer TransformerConfigurationException TransformerException - TransformerFactory TransformerFactoryConfigurationError TransformerHandler Transmitter Transparency - TreeCellEditor TreeCellRenderer TreeExpansionEvent TreeExpansionListener TreeMap TreeModel - TreeModelEvent TreeModelListener TreeNode TreePath TreeSelectionEvent TreeSelectionListener - TreeSelectionModel TreeSet TreeUI TreeWillExpandListener TrustAnchor TrustManager TrustManagerFactory - TrustManagerFactorySpi Type TypeInfoProvider TypeNotPresentException Types TypeVariable UID UIDefaults - UIManager UIResource UndeclaredThrowableException UndoableEdit UndoableEditEvent UndoableEditListener - UndoableEditSupport UndoManager UnexpectedException UnicastRemoteObject UnknownError - UnknownFormatConversionException UnknownFormatFlagsException UnknownGroupException UnknownHostException - UnknownObjectException UnknownServiceException UnmappableCharacterException UnmarshalException - UnmodifiableClassException UnmodifiableSetException UnrecoverableEntryException - UnrecoverableKeyException Unreferenced UnresolvedAddressException UnresolvedPermission - UnsatisfiedLinkError UnsolicitedNotification UnsolicitedNotificationEvent - UnsolicitedNotificationListener UnsupportedAddressTypeException UnsupportedAudioFileException - UnsupportedCallbackException UnsupportedCharsetException UnsupportedClassVersionError - UnsupportedEncodingException UnsupportedFlavorException UnsupportedLookAndFeelException - UnsupportedOperationException URI URIException URIResolver URISyntax URISyntaxException URL - URLClassLoader URLConnection URLDecoder URLEncoder URLStreamHandler URLStreamHandlerFactory - UTFDataFormatException Util UtilDelegate Utilities UUID Validator ValidatorHandler ValueExp ValueHandler - ValueHandlerMultiFormat VariableHeightLayoutCache Vector VerifyError VetoableChangeListener - VetoableChangeListenerProxy VetoableChangeSupport View ViewFactory ViewportLayout ViewportUI - VirtualMachineError Visibility VMID VoiceStatus Void VolatileImage WeakHashMap WeakReference WebRowSet - WildcardType Window WindowAdapter WindowConstants WindowEvent WindowFocusListener WindowListener - WindowStateListener WrappedPlainView WritableByteChannel WritableRaster WritableRenderedImage - WriteAbortedException Writer X500Principal X500PrivateCredential X509Certificate X509CertSelector - X509CRL X509CRLEntry X509CRLSelector X509EncodedKeySpec X509ExtendedKeyManager X509Extension - X509KeyManager X509TrustManager XAConnection XADataSource XAException XAResource Xid XMLConstants - XMLDecoder XMLEncoder XMLFormatter XMLGregorianCalendar XMLParseException XmlReader XmlWriter XPath - XPathConstants XPathException XPathExpression XPathExpressionException XPathFactory - XPathFactoryConfigurationException XPathFunction XPathFunctionException XPathFunctionResolver - XPathVariableResolver ZipEntry ZipException ZipFile ZipInputStream ZipOutputStream ZoneView - ] - #:nocov: - - end - -end -end diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/java_script.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/java_script.rb deleted file mode 100644 index 43ecb187d..000000000 --- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/java_script.rb +++ /dev/null @@ -1,213 +0,0 @@ -module CodeRay -module Scanners - - # Scanner for JavaScript. - # - # Aliases: +ecmascript+, +ecma_script+, +javascript+ - class JavaScript < Scanner - - register_for :java_script - file_extension 'js' - - # The actual JavaScript keywords. - KEYWORDS = %w[ - break case catch continue default delete do else - finally for function if in instanceof new - return switch throw try typeof var void while with - ] # :nodoc: - PREDEFINED_CONSTANTS = %w[ - false null true undefined NaN Infinity - ] # :nodoc: - - MAGIC_VARIABLES = %w[ this arguments ] # :nodoc: arguments was introduced in JavaScript 1.4 - - KEYWORDS_EXPECTING_VALUE = WordList.new.add %w[ - case delete in instanceof new return throw typeof with - ] # :nodoc: - - # Reserved for future use. - RESERVED_WORDS = %w[ - abstract boolean byte char class debugger double enum export extends - final float goto implements import int interface long native package - private protected public short static super synchronized throws transient - volatile - ] # :nodoc: - - IDENT_KIND = WordList.new(:ident). - add(RESERVED_WORDS, :reserved). - add(PREDEFINED_CONSTANTS, :predefined_constant). - add(MAGIC_VARIABLES, :local_variable). - add(KEYWORDS, :keyword) # :nodoc: - - ESCAPE = / [bfnrtv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x # :nodoc: - UNICODE_ESCAPE = / u[a-fA-F0-9]{4} | U[a-fA-F0-9]{8} /x # :nodoc: - REGEXP_ESCAPE = / [bBdDsSwW] /x # :nodoc: - STRING_CONTENT_PATTERN = { - "'" => /[^\\']+/, - '"' => /[^\\"]+/, - '/' => /[^\\\/]+/, - } # :nodoc: - KEY_CHECK_PATTERN = { - "'" => / (?> [^\\']* (?: \\. [^\\']* )* ) ' \s* : /mx, - '"' => / (?> [^\\"]* (?: \\. [^\\"]* )* ) " \s* : /mx, - } # :nodoc: - - protected - - def scan_tokens encoder, options - - state = :initial - string_delimiter = nil - value_expected = true - key_expected = false - function_expected = false - - until eos? - - case state - - when :initial - - if match = scan(/ \s+ | \\\n /x) - value_expected = true if !value_expected && match.index(?\n) - encoder.text_token match, :space - - elsif match = scan(%r! // [^\n\\]* (?: \\. [^\n\\]* )* | /\* (?: .*? \*/ | .* ) !mx) - value_expected = true - encoder.text_token match, :comment - - elsif check(/\.?\d/) - key_expected = value_expected = false - if match = scan(/0[xX][0-9A-Fa-f]+/) - encoder.text_token match, :hex - elsif match = scan(/(?>0[0-7]+)(?![89.eEfF])/) - encoder.text_token match, :octal - elsif match = scan(/\d+[fF]|\d*\.\d+(?:[eE][+-]?\d+)?[fF]?|\d+[eE][+-]?\d+[fF]?/) - encoder.text_token match, :float - elsif match = scan(/\d+/) - encoder.text_token match, :integer - end - - elsif value_expected && match = scan(/<([[:alpha:]]\w*) (?: [^\/>]*\/> | .*?<\/\1>)/xim) - # TODO: scan over nested tags - xml_scanner.tokenize match, :tokens => encoder - value_expected = false - next - - elsif match = scan(/ [-+*=<>?:;,!&^|(\[{~%]+ | \.(?!\d) /x) - value_expected = true - last_operator = match[-1] - key_expected = (last_operator == ?{) || (last_operator == ?,) - function_expected = false - encoder.text_token match, :operator - - elsif match = scan(/ [)\]}]+ /x) - function_expected = key_expected = value_expected = false - encoder.text_token match, :operator - - elsif match = scan(/ [$a-zA-Z_][A-Za-z_0-9$]* /x) - kind = IDENT_KIND[match] - value_expected = (kind == :keyword) && KEYWORDS_EXPECTING_VALUE[match] - # TODO: labels - if kind == :ident - if match.index(?$) # $ allowed inside an identifier - kind = :predefined - elsif function_expected - kind = :function - elsif check(/\s*[=:]\s*function\b/) - kind = :function - elsif key_expected && check(/\s*:/) - kind = :key - end - end - function_expected = (kind == :keyword) && (match == 'function') - key_expected = false - encoder.text_token match, kind - - elsif match = scan(/["']/) - if key_expected && check(KEY_CHECK_PATTERN[match]) - state = :key - else - state = :string - end - encoder.begin_group state - string_delimiter = match - encoder.text_token match, :delimiter - - elsif value_expected && (match = scan(/\//)) - encoder.begin_group :regexp - state = :regexp - string_delimiter = '/' - encoder.text_token match, :delimiter - - elsif match = scan(/ \/ /x) - value_expected = true - key_expected = false - encoder.text_token match, :operator - - else - encoder.text_token getch, :error - - end - - when :string, :regexp, :key - if match = scan(STRING_CONTENT_PATTERN[string_delimiter]) - encoder.text_token match, :content - elsif match = scan(/["'\/]/) - encoder.text_token match, :delimiter - if state == :regexp - modifiers = scan(/[gim]+/) - encoder.text_token modifiers, :modifier if modifiers && !modifiers.empty? - end - encoder.end_group state - string_delimiter = nil - key_expected = value_expected = false - state = :initial - elsif state != :regexp && (match = scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox)) - if string_delimiter == "'" && !(match == "\\\\" || match == "\\'") - encoder.text_token match, :content - else - encoder.text_token match, :char - end - elsif state == :regexp && match = scan(/ \\ (?: #{ESCAPE} | #{REGEXP_ESCAPE} | #{UNICODE_ESCAPE} ) /mox) - encoder.text_token match, :char - elsif match = scan(/\\./m) - encoder.text_token match, :content - elsif match = scan(/ \\ | $ /x) - encoder.end_group state - encoder.text_token match, :error - key_expected = value_expected = false - state = :initial - else - raise_inspect "else case \" reached; %p not handled." % peek(1), encoder - end - - else - raise_inspect 'Unknown state', encoder - - end - - end - - if [:string, :regexp].include? state - encoder.end_group state - end - - encoder - end - - protected - - def reset_instance - super - @xml_scanner.reset if defined? @xml_scanner - end - - def xml_scanner - @xml_scanner ||= CodeRay.scanner :xml, :tokens => @tokens, :keep_tokens => true, :keep_state => false - end - - end - -end -end diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/json.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/json.rb deleted file mode 100644 index 0c90c342d..000000000 --- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/json.rb +++ /dev/null @@ -1,95 +0,0 @@ -module CodeRay -module Scanners - - # Scanner for JSON (JavaScript Object Notation). - class JSON < Scanner - - register_for :json - file_extension 'json' - - KINDS_NOT_LOC = [ - :float, :char, :content, :delimiter, - :error, :integer, :operator, :value, - ] # :nodoc: - - ESCAPE = / [bfnrt\\"\/] /x # :nodoc: - UNICODE_ESCAPE = / u[a-fA-F0-9]{4} /x # :nodoc: - - protected - - # See http://json.org/ for a definition of the JSON lexic/grammar. - def scan_tokens encoder, options - - state = :initial - stack = [] - key_expected = false - - until eos? - - case state - - when :initial - if match = scan(/ \s+ /x) - encoder.text_token match, :space - elsif match = scan(/"/) - state = key_expected ? :key : :string - encoder.begin_group state - encoder.text_token match, :delimiter - elsif match = scan(/ [:,\[{\]}] /x) - encoder.text_token match, :operator - case match - when ':' then key_expected = false - when ',' then key_expected = true if stack.last == :object - when '{' then stack << :object; key_expected = true - when '[' then stack << :array - when '}', ']' then stack.pop # no error recovery, but works for valid JSON - end - elsif match = scan(/ true | false | null /x) - encoder.text_token match, :value - elsif match = scan(/ -? (?: 0 | [1-9]\d* ) /x) - if scan(/ \.\d+ (?:[eE][-+]?\d+)? | [eE][-+]? \d+ /x) - match << matched - encoder.text_token match, :float - else - encoder.text_token match, :integer - end - else - encoder.text_token getch, :error - end - - when :string, :key - if match = scan(/[^\\"]+/) - encoder.text_token match, :content - elsif match = scan(/"/) - encoder.text_token match, :delimiter - encoder.end_group state - state = :initial - elsif match = scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox) - encoder.text_token match, :char - elsif match = scan(/\\./m) - encoder.text_token match, :content - elsif match = scan(/ \\ | $ /x) - encoder.end_group state - encoder.text_token match, :error - state = :initial - else - raise_inspect "else case \" reached; %p not handled." % peek(1), encoder - end - - else - raise_inspect 'Unknown state: %p' % [state], encoder - - end - end - - if [:string, :key].include? state - encoder.end_group state - end - - encoder - end - - end - -end -end diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/php.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/php.rb deleted file mode 100644 index dadab0096..000000000 --- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/php.rb +++ /dev/null @@ -1,509 +0,0 @@ -module CodeRay -module Scanners - - load :html - - # Scanner for PHP. - # - # Original by Stefan Walk. - class PHP < Scanner - - register_for :php - file_extension 'php' - encoding 'BINARY' - - KINDS_NOT_LOC = HTML::KINDS_NOT_LOC - - protected - - def setup - @html_scanner = CodeRay.scanner :html, :tokens => @tokens, :keep_tokens => true, :keep_state => true - end - - def reset_instance - super - @html_scanner.reset - end - - module Words # :nodoc: - - # according to http://www.php.net/manual/en/reserved.keywords.php - KEYWORDS = %w[ - abstract and array as break case catch class clone const continue declare default do else elseif - enddeclare endfor endforeach endif endswitch endwhile extends final for foreach function global - goto if implements interface instanceof namespace new or private protected public static switch - throw try use var while xor - cfunction old_function - ] - - TYPES = %w[ int integer float double bool boolean string array object resource ] - - LANGUAGE_CONSTRUCTS = %w[ - die echo empty exit eval include include_once isset list - require require_once return print unset - ] - - CLASSES = %w[ Directory stdClass __PHP_Incomplete_Class exception php_user_filter Closure ] - - # according to http://php.net/quickref.php on 2009-04-21; - # all functions with _ excluded (module functions) and selected additional functions - BUILTIN_FUNCTIONS = %w[ - abs acos acosh addcslashes addslashes aggregate array arsort ascii2ebcdic asin asinh asort assert atan atan2 - atanh basename bcadd bccomp bcdiv bcmod bcmul bcpow bcpowmod bcscale bcsqrt bcsub bin2hex bindec - bindtextdomain bzclose bzcompress bzdecompress bzerrno bzerror bzerrstr bzflush bzopen bzread bzwrite - calculhmac ceil chdir checkdate checkdnsrr chgrp chmod chop chown chr chroot clearstatcache closedir closelog - compact constant copy cos cosh count crc32 crypt current date dcgettext dcngettext deaggregate decbin dechex - decoct define defined deg2rad delete dgettext die dirname diskfreespace dl dngettext doubleval each - ebcdic2ascii echo empty end ereg eregi escapeshellarg escapeshellcmd eval exec exit exp explode expm1 extract - fclose feof fflush fgetc fgetcsv fgets fgetss file fileatime filectime filegroup fileinode filemtime fileowner - fileperms filepro filesize filetype floatval flock floor flush fmod fnmatch fopen fpassthru fprintf fputcsv - fputs fread frenchtojd fscanf fseek fsockopen fstat ftell ftok ftruncate fwrite getallheaders getcwd getdate - getenv gethostbyaddr gethostbyname gethostbynamel getimagesize getlastmod getmxrr getmygid getmyinode getmypid - getmyuid getopt getprotobyname getprotobynumber getrandmax getrusage getservbyname getservbyport gettext - gettimeofday gettype glob gmdate gmmktime gmstrftime gregoriantojd gzclose gzcompress gzdecode gzdeflate - gzencode gzeof gzfile gzgetc gzgets gzgetss gzinflate gzopen gzpassthru gzputs gzread gzrewind gzseek gztell - gzuncompress gzwrite hash header hebrev hebrevc hexdec htmlentities htmlspecialchars hypot iconv idate - implode include intval ip2long iptcembed iptcparse isset - jddayofweek jdmonthname jdtofrench jdtogregorian jdtojewish jdtojulian jdtounix jewishtojd join jpeg2wbmp - juliantojd key krsort ksort lcfirst lchgrp lchown levenshtein link linkinfo list localeconv localtime log - log10 log1p long2ip lstat ltrim mail main max md5 metaphone mhash microtime min mkdir mktime msql natcasesort - natsort next ngettext nl2br nthmac octdec opendir openlog - ord overload pack passthru pathinfo pclose pfsockopen phpcredits phpinfo phpversion pi png2wbmp popen pos pow - prev print printf putenv quotemeta rad2deg rand range rawurldecode rawurlencode readdir readfile readgzfile - readline readlink realpath recode rename require reset rewind rewinddir rmdir round rsort rtrim scandir - serialize setcookie setlocale setrawcookie settype sha1 shuffle signeurlpaiement sin sinh sizeof sleep snmpget - snmpgetnext snmprealwalk snmpset snmpwalk snmpwalkoid sort soundex split spliti sprintf sqrt srand sscanf stat - strcasecmp strchr strcmp strcoll strcspn strftime stripcslashes stripos stripslashes stristr strlen - strnatcasecmp strnatcmp strncasecmp strncmp strpbrk strpos strptime strrchr strrev strripos strrpos strspn - strstr strtok strtolower strtotime strtoupper strtr strval substr symlink syslog system tan tanh tempnam - textdomain time tmpfile touch trim uasort ucfirst ucwords uksort umask uniqid unixtojd unlink unpack - unserialize unset urldecode urlencode usleep usort vfprintf virtual vprintf vsprintf wordwrap - array_change_key_case array_chunk array_combine array_count_values array_diff array_diff_assoc - array_diff_key array_diff_uassoc array_diff_ukey array_fill array_fill_keys array_filter array_flip - array_intersect array_intersect_assoc array_intersect_key array_intersect_uassoc array_intersect_ukey - array_key_exists array_keys array_map array_merge array_merge_recursive array_multisort array_pad - array_pop array_product array_push array_rand array_reduce array_reverse array_search array_shift - array_slice array_splice array_sum array_udiff array_udiff_assoc array_udiff_uassoc array_uintersect - array_uintersect_assoc array_uintersect_uassoc array_unique array_unshift array_values array_walk - array_walk_recursive - assert_options base_convert base64_decode base64_encode - chunk_split class_exists class_implements class_parents - count_chars debug_backtrace debug_print_backtrace debug_zval_dump - error_get_last error_log error_reporting extension_loaded - file_exists file_get_contents file_put_contents load_file - func_get_arg func_get_args func_num_args function_exists - get_browser get_called_class get_cfg_var get_class get_class_methods get_class_vars - get_current_user get_declared_classes get_declared_interfaces get_defined_constants - get_defined_functions get_defined_vars get_extension_funcs get_headers get_html_translation_table - get_include_path 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_filesget_resource_type - gc_collect_cycles gc_disable gc_enable gc_enabled - halt_compiler headers_list headers_sent highlight_file highlight_string - html_entity_decode htmlspecialchars_decode - in_array include_once inclued_get_data - is_a is_array is_binary is_bool is_buffer is_callable is_dir is_double is_executable is_file is_finite - is_float is_infinite is_int is_integer is_link is_long is_nan is_null is_numeric is_object is_readable - is_real is_resource is_scalar is_soap_fault is_string is_subclass_of is_unicode is_uploaded_file - is_writable is_writeable - locale_get_default locale_set_default - number_format override_function parse_str parse_url - php_check_syntax php_ini_loaded_file php_ini_scanned_files php_logo_guid php_sapi_name - php_strip_whitespace php_uname - preg_filter preg_grep preg_last_error preg_match preg_match_all preg_quote preg_replace - preg_replace_callback preg_split print_r - require_once register_shutdown_function register_tick_function - set_error_handler set_exception_handler set_file_buffer set_include_path - set_magic_quotes_runtime set_time_limit shell_exec - str_getcsv str_ireplace str_pad str_repeat str_replace str_rot13 str_shuffle str_split str_word_count - strip_tags substr_compare substr_count substr_replace - time_nanosleep time_sleep_until - token_get_all token_name trigger_error - unregister_tick_function use_soap_error_handler user_error - utf8_decode utf8_encode var_dump var_export - version_compare - zend_logo_guid zend_thread_id zend_version - create_function call_user_func_array - posix_access posix_ctermid posix_get_last_error 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_initgroups posix_isatty posix_kill posix_mkfifo posix_mknod - posix_setegid posix_seteuid posix_setgid posix_setpgid posix_setsid - posix_setuid posix_strerror posix_times posix_ttyname posix_uname - pcntl_alarm pcntl_exec pcntl_fork pcntl_getpriority pcntl_setpriority - pcntl_signal pcntl_signal_dispatch pcntl_sigprocmask pcntl_sigtimedwait - pcntl_sigwaitinfo pcntl_wait pcntl_waitpid pcntl_wexitstatus pcntl_wifexited - pcntl_wifsignaled pcntl_wifstopped pcntl_wstopsig pcntl_wtermsig - ] - # TODO: more built-in PHP functions? - - EXCEPTIONS = %w[ - E_ERROR E_WARNING E_PARSE E_NOTICE E_CORE_ERROR E_CORE_WARNING E_COMPILE_ERROR E_COMPILE_WARNING - E_USER_ERROR E_USER_WARNING E_USER_NOTICE E_DEPRECATED E_USER_DEPRECATED E_ALL E_STRICT - ] - - CONSTANTS = %w[ - null true false self parent - __LINE__ __DIR__ __FILE__ __LINE__ - __CLASS__ __NAMESPACE__ __METHOD__ __FUNCTION__ - PHP_VERSION PHP_MAJOR_VERSION PHP_MINOR_VERSION PHP_RELEASE_VERSION PHP_VERSION_ID PHP_EXTRA_VERSION PHP_ZTS - PHP_DEBUG PHP_MAXPATHLEN PHP_OS PHP_SAPI PHP_EOL PHP_INT_MAX PHP_INT_SIZE DEFAULT_INCLUDE_PATH - PEAR_INSTALL_DIR PEAR_EXTENSION_DIR PHP_EXTENSION_DIR PHP_PREFIX PHP_BINDIR PHP_LIBDIR PHP_DATADIR - PHP_SYSCONFDIR PHP_LOCALSTATEDIR PHP_CONFIG_FILE_PATH PHP_CONFIG_FILE_SCAN_DIR PHP_SHLIB_SUFFIX - PHP_OUTPUT_HANDLER_START PHP_OUTPUT_HANDLER_CONT PHP_OUTPUT_HANDLER_END - __COMPILER_HALT_OFFSET__ - EXTR_OVERWRITE EXTR_SKIP EXTR_PREFIX_SAME EXTR_PREFIX_ALL EXTR_PREFIX_INVALID EXTR_PREFIX_IF_EXISTS - EXTR_IF_EXISTS SORT_ASC SORT_DESC SORT_REGULAR SORT_NUMERIC SORT_STRING CASE_LOWER CASE_UPPER COUNT_NORMAL - COUNT_RECURSIVE ASSERT_ACTIVE ASSERT_CALLBACK ASSERT_BAIL ASSERT_WARNING ASSERT_QUIET_EVAL CONNECTION_ABORTED - CONNECTION_NORMAL CONNECTION_TIMEOUT INI_USER INI_PERDIR INI_SYSTEM INI_ALL M_E M_LOG2E M_LOG10E M_LN2 M_LN10 - M_PI M_PI_2 M_PI_4 M_1_PI M_2_PI M_2_SQRTPI M_SQRT2 M_SQRT1_2 CRYPT_SALT_LENGTH CRYPT_STD_DES CRYPT_EXT_DES - CRYPT_MD5 CRYPT_BLOWFISH DIRECTORY_SEPARATOR SEEK_SET SEEK_CUR SEEK_END LOCK_SH LOCK_EX LOCK_UN LOCK_NB - HTML_SPECIALCHARS HTML_ENTITIES ENT_COMPAT ENT_QUOTES ENT_NOQUOTES INFO_GENERAL INFO_CREDITS - INFO_CONFIGURATION INFO_MODULES INFO_ENVIRONMENT INFO_VARIABLES INFO_LICENSE INFO_ALL CREDITS_GROUP - CREDITS_GENERAL CREDITS_SAPI CREDITS_MODULES CREDITS_DOCS CREDITS_FULLPAGE CREDITS_QA CREDITS_ALL STR_PAD_LEFT - STR_PAD_RIGHT STR_PAD_BOTH PATHINFO_DIRNAME PATHINFO_BASENAME PATHINFO_EXTENSION PATH_SEPARATOR CHAR_MAX - LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_ALL LC_MESSAGES ABDAY_1 ABDAY_2 ABDAY_3 ABDAY_4 ABDAY_5 - ABDAY_6 ABDAY_7 DAY_1 DAY_2 DAY_3 DAY_4 DAY_5 DAY_6 DAY_7 ABMON_1 ABMON_2 ABMON_3 ABMON_4 ABMON_5 ABMON_6 - ABMON_7 ABMON_8 ABMON_9 ABMON_10 ABMON_11 ABMON_12 MON_1 MON_2 MON_3 MON_4 MON_5 MON_6 MON_7 MON_8 MON_9 - MON_10 MON_11 MON_12 AM_STR PM_STR D_T_FMT D_FMT T_FMT T_FMT_AMPM ERA ERA_YEAR ERA_D_T_FMT ERA_D_FMT ERA_T_FMT - ALT_DIGITS INT_CURR_SYMBOL CURRENCY_SYMBOL CRNCYSTR MON_DECIMAL_POINT MON_THOUSANDS_SEP MON_GROUPING - POSITIVE_SIGN NEGATIVE_SIGN INT_FRAC_DIGITS FRAC_DIGITS P_CS_PRECEDES P_SEP_BY_SPACE N_CS_PRECEDES - N_SEP_BY_SPACE P_SIGN_POSN N_SIGN_POSN DECIMAL_POINT RADIXCHAR THOUSANDS_SEP THOUSEP GROUPING YESEXPR NOEXPR - YESSTR NOSTR CODESET LOG_EMERG LOG_ALERT LOG_CRIT LOG_ERR LOG_WARNING LOG_NOTICE LOG_INFO LOG_DEBUG LOG_KERN - LOG_USER LOG_MAIL LOG_DAEMON LOG_AUTH LOG_SYSLOG LOG_LPR LOG_NEWS LOG_UUCP LOG_CRON LOG_AUTHPRIV LOG_LOCAL0 - LOG_LOCAL1 LOG_LOCAL2 LOG_LOCAL3 LOG_LOCAL4 LOG_LOCAL5 LOG_LOCAL6 LOG_LOCAL7 LOG_PID LOG_CONS LOG_ODELAY - LOG_NDELAY LOG_NOWAIT LOG_PERROR - ] - - PREDEFINED = %w[ - $GLOBALS $_SERVER $_GET $_POST $_FILES $_REQUEST $_SESSION $_ENV - $_COOKIE $php_errormsg $HTTP_RAW_POST_DATA $http_response_header - $argc $argv - ] - - IDENT_KIND = WordList::CaseIgnoring.new(:ident). - add(KEYWORDS, :keyword). - add(TYPES, :predefined_type). - add(LANGUAGE_CONSTRUCTS, :keyword). - add(BUILTIN_FUNCTIONS, :predefined). - add(CLASSES, :predefined_constant). - add(EXCEPTIONS, :exception). - add(CONSTANTS, :predefined_constant) - - VARIABLE_KIND = WordList.new(:local_variable). - add(PREDEFINED, :predefined) - end - - module RE # :nodoc: - - PHP_START = / - <script\s+[^>]*?language\s*=\s*"php"[^>]*?> | - <script\s+[^>]*?language\s*=\s*'php'[^>]*?> | - <\?php\d? | - <\?(?!xml) - /xi - - PHP_END = %r! - </script> | - \?> - !xi - - HTML_INDICATOR = /<!DOCTYPE html|<(?:html|body|div|p)[> ]/i - - IDENTIFIER = /[a-z_\x7f-\xFF][a-z0-9_\x7f-\xFF]*/i - VARIABLE = /\$#{IDENTIFIER}/ - - OPERATOR = / - \.(?!\d)=? | # dot that is not decimal point, string concatenation - && | \|\| | # logic - :: | -> | => | # scope, member, dictionary - \\(?!\n) | # namespace - \+\+ | -- | # increment, decrement - [,;?:()\[\]{}] | # simple delimiters - [-+*\/%&|^]=? | # ordinary math, binary logic, assignment shortcuts - [~$] | # whatever - =& | # reference assignment - [=!]=?=? | <> | # comparison and assignment - <<=? | >>=? | [<>]=? # comparison and shift - /x - - end - - protected - - def scan_tokens encoder, options - - if check(RE::PHP_START) || # starts with <? - (match?(/\s*<\S/) && check(/.{1,1000}#{RE::PHP_START}/om)) || # starts with tag and contains <? - check(/.{0,1000}#{RE::HTML_INDICATOR}/om) || - check(/.{1,100}#{RE::PHP_START}/om) # PHP start after max 100 chars - # is HTML with embedded PHP, so start with HTML - states = [:initial] - else - # is just PHP, so start with PHP surrounded by HTML - states = [:initial, :php] - end - - label_expected = true - case_expected = false - - heredoc_delimiter = nil - delimiter = nil - modifier = nil - - until eos? - - case states.last - - when :initial # HTML - if match = scan(RE::PHP_START) - encoder.text_token match, :inline_delimiter - label_expected = true - states << :php - else - match = scan_until(/(?=#{RE::PHP_START})/o) || scan_rest - @html_scanner.tokenize match unless match.empty? - end - - when :php - if match = scan(/\s+/) - encoder.text_token match, :space - - elsif match = scan(%r! (?m: \/\* (?: .*? \*\/ | .* ) ) | (?://|\#) .*? (?=#{RE::PHP_END}|$) !xo) - encoder.text_token match, :comment - - elsif match = scan(RE::IDENTIFIER) - kind = Words::IDENT_KIND[match] - if kind == :ident && label_expected && check(/:(?!:)/) - kind = :label - label_expected = true - else - label_expected = false - if kind == :ident && match =~ /^[A-Z]/ - kind = :constant - elsif kind == :keyword - case match - when 'class' - states << :class_expected - when 'function' - states << :function_expected - when 'case', 'default' - case_expected = true - end - elsif match == 'b' && check(/['"]/) # binary string literal - modifier = match - next - end - end - encoder.text_token match, kind - - elsif match = scan(/(?:\d+\.\d*|\d*\.\d+)(?:e[-+]?\d+)?|\d+e[-+]?\d+/i) - label_expected = false - encoder.text_token match, :float - - elsif match = scan(/0x[0-9a-fA-F]+/) - label_expected = false - encoder.text_token match, :hex - - elsif match = scan(/\d+/) - label_expected = false - encoder.text_token match, :integer - - elsif match = scan(/['"`]/) - encoder.begin_group :string - if modifier - encoder.text_token modifier, :modifier - modifier = nil - end - delimiter = match - encoder.text_token match, :delimiter - states.push match == "'" ? :sqstring : :dqstring - - elsif match = scan(RE::VARIABLE) - label_expected = false - encoder.text_token match, Words::VARIABLE_KIND[match] - - elsif match = scan(/\{/) - encoder.text_token match, :operator - label_expected = true - states.push :php - - elsif match = scan(/\}/) - if states.size == 1 - encoder.text_token match, :error - else - states.pop - if states.last.is_a?(::Array) - delimiter = states.last[1] - states[-1] = states.last[0] - encoder.text_token match, :delimiter - encoder.end_group :inline - else - encoder.text_token match, :operator - label_expected = true - end - end - - elsif match = scan(/@/) - label_expected = false - encoder.text_token match, :exception - - elsif match = scan(RE::PHP_END) - encoder.text_token match, :inline_delimiter - states = [:initial] - - elsif match = scan(/<<<(?:(#{RE::IDENTIFIER})|"(#{RE::IDENTIFIER})"|'(#{RE::IDENTIFIER})')/o) - encoder.begin_group :string - # warn 'heredoc in heredoc?' if heredoc_delimiter - heredoc_delimiter = Regexp.escape(self[1] || self[2] || self[3]) - encoder.text_token match, :delimiter - states.push self[3] ? :sqstring : :dqstring - heredoc_delimiter = /#{heredoc_delimiter}(?=;?$)/ - - elsif match = scan(/#{RE::OPERATOR}/o) - label_expected = match == ';' - if case_expected - label_expected = true if match == ':' - case_expected = false - end - encoder.text_token match, :operator - - else - encoder.text_token getch, :error - - end - - when :sqstring - if match = scan(heredoc_delimiter ? /[^\\\n]+/ : /[^'\\]+/) - encoder.text_token match, :content - elsif !heredoc_delimiter && match = scan(/'/) - encoder.text_token match, :delimiter - encoder.end_group :string - delimiter = nil - label_expected = false - states.pop - elsif heredoc_delimiter && match = scan(/\n/) - if scan heredoc_delimiter - encoder.text_token "\n", :content - encoder.text_token matched, :delimiter - encoder.end_group :string - heredoc_delimiter = nil - label_expected = false - states.pop - else - encoder.text_token match, :content - end - elsif match = scan(heredoc_delimiter ? /\\\\/ : /\\[\\'\n]/) - encoder.text_token match, :char - elsif match = scan(/\\./m) - encoder.text_token match, :content - elsif match = scan(/\\/) - encoder.text_token match, :error - else - states.pop - end - - when :dqstring - if match = scan(heredoc_delimiter ? /[^${\\\n]+/ : (delimiter == '"' ? /[^"${\\]+/ : /[^`${\\]+/)) - encoder.text_token match, :content - elsif !heredoc_delimiter && match = scan(delimiter == '"' ? /"/ : /`/) - encoder.text_token match, :delimiter - encoder.end_group :string - delimiter = nil - label_expected = false - states.pop - elsif heredoc_delimiter && match = scan(/\n/) - if scan heredoc_delimiter - encoder.text_token "\n", :content - encoder.text_token matched, :delimiter - encoder.end_group :string - heredoc_delimiter = nil - label_expected = false - states.pop - else - encoder.text_token match, :content - end - elsif match = scan(/\\(?:x[0-9A-Fa-f]{1,2}|[0-7]{1,3})/) - encoder.text_token match, :char - elsif match = scan(heredoc_delimiter ? /\\[nrtvf\\$]/ : (delimiter == '"' ? /\\[nrtvf\\$"]/ : /\\[nrtvf\\$`]/)) - encoder.text_token match, :char - elsif match = scan(/\\./m) - encoder.text_token match, :content - elsif match = scan(/\\/) - encoder.text_token match, :error - elsif match = scan(/#{RE::VARIABLE}/o) - if check(/\[#{RE::IDENTIFIER}\]/o) - encoder.begin_group :inline - encoder.text_token match, :local_variable - encoder.text_token scan(/\[/), :operator - encoder.text_token scan(/#{RE::IDENTIFIER}/o), :ident - encoder.text_token scan(/\]/), :operator - encoder.end_group :inline - elsif check(/\[/) - match << scan(/\[['"]?#{RE::IDENTIFIER}?['"]?\]?/o) - encoder.text_token match, :error - elsif check(/->#{RE::IDENTIFIER}/o) - encoder.begin_group :inline - encoder.text_token match, :local_variable - encoder.text_token scan(/->/), :operator - encoder.text_token scan(/#{RE::IDENTIFIER}/o), :ident - encoder.end_group :inline - elsif check(/->/) - match << scan(/->/) - encoder.text_token match, :error - else - encoder.text_token match, :local_variable - end - elsif match = scan(/\{/) - if check(/\$/) - encoder.begin_group :inline - states[-1] = [states.last, delimiter] - delimiter = nil - states.push :php - encoder.text_token match, :delimiter - else - encoder.text_token match, :content - end - elsif match = scan(/\$\{#{RE::IDENTIFIER}\}/o) - encoder.text_token match, :local_variable - elsif match = scan(/\$/) - encoder.text_token match, :content - else - states.pop - end - - when :class_expected - if match = scan(/\s+/) - encoder.text_token match, :space - elsif match = scan(/#{RE::IDENTIFIER}/o) - encoder.text_token match, :class - states.pop - else - states.pop - end - - when :function_expected - if match = scan(/\s+/) - encoder.text_token match, :space - elsif match = scan(/&/) - encoder.text_token match, :operator - elsif match = scan(/#{RE::IDENTIFIER}/o) - encoder.text_token match, :function - states.pop - else - states.pop - end - - else - raise_inspect 'Unknown state!', encoder, states - end - - end - - encoder - end - - end - -end -end diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/python.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/python.rb deleted file mode 100644 index 5e38a2c61..000000000 --- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/python.rb +++ /dev/null @@ -1,287 +0,0 @@ -module CodeRay -module Scanners - - # Scanner for Python. Supports Python 3. - # - # Based on pygments' PythonLexer, see - # http://dev.pocoo.org/projects/pygments/browser/pygments/lexers/agile.py. - class Python < Scanner - - register_for :python - file_extension 'py' - - KEYWORDS = [ - 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', - 'del', 'elif', 'else', 'except', 'finally', 'for', - 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', - 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield', - 'nonlocal', # new in Python 3 - ] # :nodoc: - - OLD_KEYWORDS = [ - 'exec', 'print', # gone in Python 3 - ] # :nodoc: - - PREDEFINED_METHODS_AND_TYPES = %w[ - __import__ abs all any apply basestring bin bool buffer - bytearray bytes callable chr classmethod cmp coerce compile - complex delattr dict dir divmod enumerate eval execfile exit - file filter float frozenset getattr globals hasattr hash hex id - input int intern isinstance issubclass iter len list locals - long map max min next object oct open ord pow property range - raw_input reduce reload repr reversed round set setattr slice - sorted staticmethod str sum super tuple type unichr unicode - vars xrange zip - ] # :nodoc: - - PREDEFINED_EXCEPTIONS = %w[ - ArithmeticError AssertionError AttributeError - BaseException DeprecationWarning EOFError EnvironmentError - Exception FloatingPointError FutureWarning GeneratorExit IOError - ImportError ImportWarning IndentationError IndexError KeyError - KeyboardInterrupt LookupError MemoryError NameError - NotImplemented NotImplementedError OSError OverflowError - OverflowWarning PendingDeprecationWarning ReferenceError - RuntimeError RuntimeWarning StandardError StopIteration - SyntaxError SyntaxWarning SystemError SystemExit TabError - TypeError UnboundLocalError UnicodeDecodeError - UnicodeEncodeError UnicodeError UnicodeTranslateError - UnicodeWarning UserWarning ValueError Warning ZeroDivisionError - ] # :nodoc: - - PREDEFINED_VARIABLES_AND_CONSTANTS = [ - 'False', 'True', 'None', # "keywords" since Python 3 - 'self', 'Ellipsis', 'NotImplemented', - ] # :nodoc: - - IDENT_KIND = WordList.new(:ident). - add(KEYWORDS, :keyword). - add(OLD_KEYWORDS, :old_keyword). - add(PREDEFINED_METHODS_AND_TYPES, :predefined). - add(PREDEFINED_VARIABLES_AND_CONSTANTS, :predefined_constant). - add(PREDEFINED_EXCEPTIONS, :exception) # :nodoc: - - NAME = / [^\W\d] \w* /x # :nodoc: - ESCAPE = / [abfnrtv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x # :nodoc: - UNICODE_ESCAPE = / u[a-fA-F0-9]{4} | U[a-fA-F0-9]{8} | N\{[-\w ]+\} /x # :nodoc: - - OPERATOR = / - \.\.\. | # ellipsis - \.(?!\d) | # dot but not decimal point - [,;:()\[\]{}] | # simple delimiters - \/\/=? | \*\*=? | # special math - [-+*\/%&|^]=? | # ordinary math and binary logic - [~`] | # binary complement and inspection - <<=? | >>=? | [<>=]=? | != # comparison and assignment - /x # :nodoc: - - STRING_DELIMITER_REGEXP = Hash.new { |h, delimiter| - h[delimiter] = Regexp.union delimiter # :nodoc: - } - - STRING_CONTENT_REGEXP = Hash.new { |h, delimiter| - h[delimiter] = / [^\\\n]+? (?= \\ | $ | #{Regexp.escape(delimiter)} ) /x # :nodoc: - } - - DEF_NEW_STATE = WordList.new(:initial). - add(%w(def), :def_expected). - add(%w(import from), :include_expected). - add(%w(class), :class_expected) # :nodoc: - - DESCRIPTOR = / - #{NAME} - (?: \. #{NAME} )* - | \* - /x # :nodoc: - - DOCSTRING_COMING = / - [ \t]* u?r? ("""|''') - /x # :nodoc: - - protected - - def scan_tokens encoder, options - - state = :initial - string_delimiter = nil - string_raw = false - string_type = nil - docstring_coming = match?(/#{DOCSTRING_COMING}/o) - last_token_dot = false - unicode = string.respond_to?(:encoding) && string.encoding.name == 'UTF-8' - from_import_state = [] - - until eos? - - if state == :string - if match = scan(STRING_DELIMITER_REGEXP[string_delimiter]) - encoder.text_token match, :delimiter - encoder.end_group string_type - string_type = nil - state = :initial - next - elsif string_delimiter.size == 3 && match = scan(/\n/) - encoder.text_token match, :content - elsif match = scan(STRING_CONTENT_REGEXP[string_delimiter]) - encoder.text_token match, :content - elsif !string_raw && match = scan(/ \\ #{ESCAPE} /ox) - encoder.text_token match, :char - elsif match = scan(/ \\ #{UNICODE_ESCAPE} /ox) - encoder.text_token match, :char - elsif match = scan(/ \\ . /x) - encoder.text_token match, :content - elsif match = scan(/ \\ | $ /x) - encoder.end_group string_type - string_type = nil - encoder.text_token match, :error - state = :initial - else - raise_inspect "else case \" reached; %p not handled." % peek(1), encoder, state - end - - elsif match = scan(/ [ \t]+ | \\?\n /x) - encoder.text_token match, :space - if match == "\n" - state = :initial if state == :include_expected - docstring_coming = true if match?(/#{DOCSTRING_COMING}/o) - end - next - - elsif match = scan(/ \# [^\n]* /mx) - encoder.text_token match, :comment - next - - elsif state == :initial - - if match = scan(/#{OPERATOR}/o) - encoder.text_token match, :operator - - elsif match = scan(/(u?r?|b)?("""|"|'''|')/i) - string_delimiter = self[2] - string_type = docstring_coming ? :docstring : :string - docstring_coming = false if docstring_coming - encoder.begin_group string_type - string_raw = false - modifiers = self[1] - unless modifiers.empty? - string_raw = !!modifiers.index(?r) - encoder.text_token modifiers, :modifier - match = string_delimiter - end - state = :string - encoder.text_token match, :delimiter - - # TODO: backticks - - elsif match = scan(unicode ? /#{NAME}/uo : /#{NAME}/o) - kind = IDENT_KIND[match] - # TODO: keyword arguments - kind = :ident if last_token_dot - if kind == :old_keyword - kind = check(/\(/) ? :ident : :keyword - elsif kind == :predefined && check(/ *=/) - kind = :ident - elsif kind == :keyword - state = DEF_NEW_STATE[match] - from_import_state << match.to_sym if state == :include_expected - end - encoder.text_token match, kind - - elsif match = scan(/@[a-zA-Z0-9_.]+[lL]?/) - encoder.text_token match, :decorator - - elsif match = scan(/0[xX][0-9A-Fa-f]+[lL]?/) - encoder.text_token match, :hex - - elsif match = scan(/0[bB][01]+[lL]?/) - encoder.text_token match, :binary - - elsif match = scan(/(?:\d*\.\d+|\d+\.\d*)(?:[eE][+-]?\d+)?|\d+[eE][+-]?\d+/) - if scan(/[jJ]/) - match << matched - encoder.text_token match, :imaginary - else - encoder.text_token match, :float - end - - elsif match = scan(/0[oO][0-7]+|0[0-7]+(?![89.eE])[lL]?/) - encoder.text_token match, :octal - - elsif match = scan(/\d+([lL])?/) - if self[1] == nil && scan(/[jJ]/) - match << matched - encoder.text_token match, :imaginary - else - encoder.text_token match, :integer - end - - else - encoder.text_token getch, :error - - end - - elsif state == :def_expected - state = :initial - if match = scan(unicode ? /#{NAME}/uo : /#{NAME}/o) - encoder.text_token match, :method - else - next - end - - elsif state == :class_expected - state = :initial - if match = scan(unicode ? /#{NAME}/uo : /#{NAME}/o) - encoder.text_token match, :class - else - next - end - - elsif state == :include_expected - if match = scan(unicode ? /#{DESCRIPTOR}/uo : /#{DESCRIPTOR}/o) - if match == 'as' - encoder.text_token match, :keyword - from_import_state << :as - elsif from_import_state.first == :from && match == 'import' - encoder.text_token match, :keyword - from_import_state << :import - elsif from_import_state.last == :as - # encoder.text_token match, match[0,1][unicode ? /[[:upper:]]/u : /[[:upper:]]/] ? :class : :method - encoder.text_token match, :ident - from_import_state.pop - elsif IDENT_KIND[match] == :keyword - unscan - match = nil - state = :initial - next - else - encoder.text_token match, :include - end - elsif match = scan(/,/) - from_import_state.pop if from_import_state.last == :as - encoder.text_token match, :operator - else - from_import_state = [] - state = :initial - next - end - - else - raise_inspect 'Unknown state', encoder, state - - end - - last_token_dot = match == '.' - - end - - if state == :string - encoder.end_group string_type - end - - encoder - end - - end - -end -end diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/raydebug.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/raydebug.rb deleted file mode 100644 index 7a21354cf..000000000 --- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/raydebug.rb +++ /dev/null @@ -1,66 +0,0 @@ -module CodeRay -module Scanners - - # = Debug Scanner - # - # Parses the output of the Encoders::Debug encoder. - class Raydebug < Scanner - - register_for :raydebug - file_extension 'raydebug' - title 'CodeRay Token Dump' - - protected - - def scan_tokens encoder, options - - opened_tokens = [] - - until eos? - - if match = scan(/\s+/) - encoder.text_token match, :space - - elsif match = scan(/ (\w+) \( ( [^\)\\]* ( \\. [^\)\\]* )* ) /x) - kind = self[1] - encoder.text_token kind, :class - encoder.text_token '(', :operator - match = self[2] - encoder.text_token match, kind.to_sym - encoder.text_token match, :operator if match = scan(/\)/) - - elsif match = scan(/ (\w+) ([<\[]) /x) - kind = self[1] - case self[2] - when '<' - encoder.text_token kind, :class - when '[' - encoder.text_token kind, :class - else - raise 'CodeRay bug: This case should not be reached.' - end - kind = kind.to_sym - opened_tokens << kind - encoder.begin_group kind - encoder.text_token self[2], :operator - - elsif !opened_tokens.empty? && match = scan(/ [>\]] /x) - encoder.text_token match, :operator - encoder.end_group opened_tokens.pop - - else - encoder.text_token getch, :space - - end - - end - - encoder.end_group opened_tokens.pop until opened_tokens.empty? - - encoder - end - - end - -end -end diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/ruby.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/ruby.rb deleted file mode 100644 index 4244ab7ba..000000000 --- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/ruby.rb +++ /dev/null @@ -1,461 +0,0 @@ -module CodeRay -module Scanners - - # This scanner is really complex, since Ruby _is_ a complex language! - # - # It tries to highlight 100% of all common code, - # and 90% of strange codes. - # - # It is optimized for HTML highlighting, and is not very useful for - # parsing or pretty printing. - class Ruby < Scanner - - register_for :ruby - file_extension 'rb' - - autoload :Patterns, 'coderay/scanners/ruby/patterns' - autoload :StringState, 'coderay/scanners/ruby/string_state' - - def interpreted_string_state - StringState.new :string, true, '"' - end - - protected - - def setup - @state = :initial - end - - def scan_tokens encoder, options - state, heredocs = options[:state] || @state - heredocs = heredocs.dup if heredocs.is_a?(Array) - - if state && state.instance_of?(StringState) - encoder.begin_group state.type - end - - last_state = nil - - method_call_expected = false - value_expected = true - - inline_block_stack = nil - inline_block_curly_depth = 0 - - if heredocs - state = heredocs.shift - encoder.begin_group state.type - heredocs = nil if heredocs.empty? - end - - # def_object_stack = nil - # def_object_paren_depth = 0 - - patterns = Patterns # avoid constant lookup - - unicode = string.respond_to?(:encoding) && string.encoding.name == 'UTF-8' - - until eos? - - if state.instance_of? ::Symbol - - if match = scan(/[ \t\f\v]+/) - encoder.text_token match, :space - - elsif match = scan(/\n/) - if heredocs - unscan # heredoc scanning needs \n at start - state = heredocs.shift - encoder.begin_group state.type - heredocs = nil if heredocs.empty? - else - state = :initial if state == :undef_comma_expected - encoder.text_token match, :space - value_expected = true - end - - elsif match = scan(bol? ? / \#(!)?.* | #{patterns::RUBYDOC_OR_DATA} /ox : /\#.*/) - encoder.text_token match, self[1] ? :doctype : :comment - - elsif match = scan(/\\\n/) - if heredocs - unscan # heredoc scanning needs \n at start - encoder.text_token scan(/\\/), :space - state = heredocs.shift - encoder.begin_group state.type - heredocs = nil if heredocs.empty? - else - encoder.text_token match, :space - end - - elsif state == :initial - - # IDENTS # - if !method_call_expected && - match = scan(unicode ? /#{patterns::METHOD_NAME}/uo : - /#{patterns::METHOD_NAME}/o) - value_expected = false - kind = patterns::IDENT_KIND[match] - if kind == :ident - if match[/\A[A-Z]/] && !(match[/[!?]$/] || match?(/\(/)) - kind = :constant - end - elsif kind == :keyword - state = patterns::KEYWORD_NEW_STATE[match] - value_expected = true if patterns::KEYWORDS_EXPECTING_VALUE[match] - end - value_expected = true if !value_expected && check(/#{patterns::VALUE_FOLLOWS}/o) - encoder.text_token match, kind - - elsif method_call_expected && - match = scan(unicode ? /#{patterns::METHOD_AFTER_DOT}/uo : - /#{patterns::METHOD_AFTER_DOT}/o) - if method_call_expected == '::' && match[/\A[A-Z]/] && !match?(/\(/) - encoder.text_token match, :constant - else - encoder.text_token match, :ident - end - method_call_expected = false - value_expected = check(/#{patterns::VALUE_FOLLOWS}/o) - - # OPERATORS # - elsif !method_call_expected && match = scan(/ (\.(?!\.)|::) | (?: \.\.\.? | ==?=? | [,\(\[\{] )() | [\)\]\}] /x) - method_call_expected = self[1] - value_expected = !method_call_expected && self[2] - if inline_block_stack - case match - when '{' - inline_block_curly_depth += 1 - when '}' - inline_block_curly_depth -= 1 - if inline_block_curly_depth == 0 # closing brace of inline block reached - state, inline_block_curly_depth, heredocs = inline_block_stack.pop - inline_block_stack = nil if inline_block_stack.empty? - heredocs = nil if heredocs && heredocs.empty? - encoder.text_token match, :inline_delimiter - encoder.end_group :inline - next - end - end - end - encoder.text_token match, :operator - - elsif match = scan(unicode ? /#{patterns::SYMBOL}/uo : - /#{patterns::SYMBOL}/o) - case delim = match[1] - when ?', ?" - encoder.begin_group :symbol - encoder.text_token ':', :symbol - match = delim.chr - encoder.text_token match, :delimiter - state = self.class::StringState.new :symbol, delim == ?", match - else - encoder.text_token match, :symbol - value_expected = false - end - - elsif match = scan(/ ' (?:(?>[^'\\]*) ')? | " (?:(?>[^"\\\#]*) ")? /mx) - encoder.begin_group :string - if match.size == 1 - encoder.text_token match, :delimiter - state = self.class::StringState.new :string, match == '"', match # important for streaming - else - encoder.text_token match[0,1], :delimiter - encoder.text_token match[1..-2], :content if match.size > 2 - encoder.text_token match[-1,1], :delimiter - encoder.end_group :string - value_expected = false - end - - elsif match = scan(unicode ? /#{patterns::INSTANCE_VARIABLE}/uo : - /#{patterns::INSTANCE_VARIABLE}/o) - value_expected = false - encoder.text_token match, :instance_variable - - elsif value_expected && match = scan(/\//) - encoder.begin_group :regexp - encoder.text_token match, :delimiter - state = self.class::StringState.new :regexp, true, '/' - - elsif match = scan(value_expected ? /[-+]?#{patterns::NUMERIC}/o : /#{patterns::NUMERIC}/o) - if method_call_expected - encoder.text_token match, :error - method_call_expected = false - else - encoder.text_token match, self[1] ? :float : :integer # TODO: send :hex/:octal/:binary - end - value_expected = false - - elsif match = scan(/ [-+!~^\/]=? | [:;] | [*|&]{1,2}=? | >>? /x) - value_expected = true - encoder.text_token match, :operator - - elsif value_expected && match = scan(/#{patterns::HEREDOC_OPEN}/o) - quote = self[3] - delim = self[quote ? 4 : 2] - kind = patterns::QUOTE_TO_TYPE[quote] - encoder.begin_group kind - encoder.text_token match, :delimiter - encoder.end_group kind - heredocs ||= [] # create heredocs if empty - heredocs << self.class::StringState.new(kind, quote != "'", delim, - self[1] == '-' ? :indented : :linestart) - value_expected = false - - elsif value_expected && match = scan(/#{patterns::FANCY_STRING_START}/o) - kind = patterns::FANCY_STRING_KIND[self[1]] - encoder.begin_group kind - state = self.class::StringState.new kind, patterns::FANCY_STRING_INTERPRETED[self[1]], self[2] - encoder.text_token match, :delimiter - - elsif value_expected && match = scan(/#{patterns::CHARACTER}/o) - value_expected = false - encoder.text_token match, :integer - - elsif match = scan(/ %=? | <(?:<|=>?)? | \? /x) - value_expected = true - encoder.text_token match, :operator - - elsif match = scan(/`/) - encoder.begin_group :shell - encoder.text_token match, :delimiter - state = self.class::StringState.new :shell, true, match - - elsif match = scan(unicode ? /#{patterns::GLOBAL_VARIABLE}/uo : - /#{patterns::GLOBAL_VARIABLE}/o) - encoder.text_token match, :global_variable - value_expected = false - - elsif match = scan(unicode ? /#{patterns::CLASS_VARIABLE}/uo : - /#{patterns::CLASS_VARIABLE}/o) - encoder.text_token match, :class_variable - value_expected = false - - elsif match = scan(/\\\z/) - encoder.text_token match, :space - - else - if method_call_expected - method_call_expected = false - next - end - unless unicode - # check for unicode - $DEBUG_BEFORE, $DEBUG = $DEBUG, false - begin - if check(/./mu).size > 1 - # seems like we should try again with unicode - unicode = true - end - rescue - # bad unicode char; use getch - ensure - $DEBUG = $DEBUG_BEFORE - end - next if unicode - end - - encoder.text_token getch, :error - - end - - if last_state - state = last_state - last_state = nil - end - - elsif state == :def_expected - if match = scan(unicode ? /(?>#{patterns::METHOD_NAME_EX})(?!\.|::)/uo : - /(?>#{patterns::METHOD_NAME_EX})(?!\.|::)/o) - encoder.text_token match, :method - state = :initial - else - last_state = :dot_expected - state = :initial - end - - elsif state == :dot_expected - if match = scan(/\.|::/) - # invalid definition - state = :def_expected - encoder.text_token match, :operator - else - state = :initial - end - - elsif state == :module_expected - if match = scan(/<</) - encoder.text_token match, :operator - else - state = :initial - if match = scan(unicode ? / (?:#{patterns::IDENT}::)* #{patterns::IDENT} /oux : - / (?:#{patterns::IDENT}::)* #{patterns::IDENT} /ox) - encoder.text_token match, :class - end - end - - elsif state == :undef_expected - state = :undef_comma_expected - if match = scan(unicode ? /(?>#{patterns::METHOD_NAME_EX})(?!\.|::)/uo : - /(?>#{patterns::METHOD_NAME_EX})(?!\.|::)/o) - encoder.text_token match, :method - elsif match = scan(/#{patterns::SYMBOL}/o) - case delim = match[1] - when ?', ?" - encoder.begin_group :symbol - encoder.text_token ':', :symbol - match = delim.chr - encoder.text_token match, :delimiter - state = self.class::StringState.new :symbol, delim == ?", match - state.next_state = :undef_comma_expected - else - encoder.text_token match, :symbol - end - else - state = :initial - end - - elsif state == :undef_comma_expected - if match = scan(/,/) - encoder.text_token match, :operator - state = :undef_expected - else - state = :initial - end - - elsif state == :alias_expected - match = scan(unicode ? /(#{patterns::METHOD_NAME_OR_SYMBOL})([ \t]+)(#{patterns::METHOD_NAME_OR_SYMBOL})/uo : - /(#{patterns::METHOD_NAME_OR_SYMBOL})([ \t]+)(#{patterns::METHOD_NAME_OR_SYMBOL})/o) - - if match - encoder.text_token self[1], (self[1][0] == ?: ? :symbol : :method) - encoder.text_token self[2], :space - encoder.text_token self[3], (self[3][0] == ?: ? :symbol : :method) - end - state = :initial - - else - #:nocov: - raise_inspect 'Unknown state: %p' % [state], encoder - #:nocov: - end - - else # StringState - - match = scan_until(state.pattern) || scan_rest - unless match.empty? - encoder.text_token match, :content - break if eos? - end - - if state.heredoc && self[1] # end of heredoc - match = getch - match << scan_until(/$/) unless eos? - encoder.text_token match, :delimiter unless match.empty? - encoder.end_group state.type - state = state.next_state - next - end - - case match = getch - - when state.delim - if state.paren_depth - state.paren_depth -= 1 - if state.paren_depth > 0 - encoder.text_token match, :content - next - end - end - encoder.text_token match, :delimiter - if state.type == :regexp && !eos? - match = scan(/#{patterns::REGEXP_MODIFIERS}/o) - encoder.text_token match, :modifier unless match.empty? - end - encoder.end_group state.type - value_expected = false - state = state.next_state - - when '\\' - if state.interpreted - if esc = scan(/#{patterns::ESCAPE}/o) - encoder.text_token match + esc, :char - else - encoder.text_token match, :error - end - else - case esc = getch - when nil - encoder.text_token match, :content - when state.delim, '\\' - encoder.text_token match + esc, :char - else - encoder.text_token match + esc, :content - end - end - - when '#' - case peek(1) - when '{' - inline_block_stack ||= [] - inline_block_stack << [state, inline_block_curly_depth, heredocs] - value_expected = true - state = :initial - inline_block_curly_depth = 1 - encoder.begin_group :inline - encoder.text_token match + getch, :inline_delimiter - when '$', '@' - encoder.text_token match, :escape - last_state = state - state = :initial - else - #:nocov: - raise_inspect 'else-case # reached; #%p not handled' % [peek(1)], encoder - #:nocov: - end - - when state.opening_paren - state.paren_depth += 1 - encoder.text_token match, :content - - else - #:nocov - raise_inspect 'else-case " reached; %p not handled, state = %p' % [match, state], encoder - #:nocov: - - end - - end - - end - - # cleaning up - if state.is_a? StringState - encoder.end_group state.type - end - - if options[:keep_state] - if state.is_a?(StringState) && state.heredoc - (heredocs ||= []).unshift state - state = :initial - elsif heredocs && heredocs.empty? - heredocs = nil - end - @state = state, heredocs - end - - if inline_block_stack - until inline_block_stack.empty? - state, = *inline_block_stack.pop - encoder.end_group :inline - encoder.end_group state.type - end - end - - encoder - end - - end - -end -end diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/ruby/patterns.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/ruby/patterns.rb deleted file mode 100644 index a52198ef1..000000000 --- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/ruby/patterns.rb +++ /dev/null @@ -1,175 +0,0 @@ -# encoding: utf-8 -module CodeRay -module Scanners - - module Ruby::Patterns # :nodoc: all - - KEYWORDS = %w[ - and def end in or unless begin - defined? ensure module redo super until - BEGIN break do next rescue then - when END case else for retry - while alias class elsif if not return - undef yield - ] - - # See http://murfy.de/ruby-constants. - PREDEFINED_CONSTANTS = %w[ - nil true false self - DATA ARGV ARGF ENV - FALSE TRUE NIL - STDERR STDIN STDOUT - TOPLEVEL_BINDING - RUBY_COPYRIGHT RUBY_DESCRIPTION RUBY_ENGINE RUBY_PATCHLEVEL - RUBY_PLATFORM RUBY_RELEASE_DATE RUBY_REVISION RUBY_VERSION - __FILE__ __LINE__ __ENCODING__ - ] - - IDENT_KIND = WordList.new(:ident). - add(KEYWORDS, :keyword). - add(PREDEFINED_CONSTANTS, :predefined_constant) - - KEYWORD_NEW_STATE = WordList.new(:initial). - add(%w[ def ], :def_expected). - add(%w[ undef ], :undef_expected). - add(%w[ alias ], :alias_expected). - add(%w[ class module ], :module_expected) - - IDENT = 'ä'[/[[:alpha:]]/] == 'ä' ? /[[:alpha:]_][[:alnum:]_]*/ : /[^\W\d]\w*/ - - METHOD_NAME = / #{IDENT} [?!]? /ox - METHOD_NAME_OPERATOR = / - \*\*? # multiplication and power - | [-+~]@? # plus, minus, tilde with and without at sign - | [\/%&|^`] # division, modulo or format strings, and, or, xor, system - | \[\]=? # array getter and setter - | << | >> # append or shift left, shift right - | <=?>? | >=? # comparison, rocket operator - | ===? | =~ # simple equality, case equality, match - | ![~=@]? # negation with and without at sign, not-equal and not-match - /ox - METHOD_SUFFIX = / (?: [?!] | = (?![~>]|=(?!>)) ) /x - METHOD_NAME_EX = / #{IDENT} #{METHOD_SUFFIX}? | #{METHOD_NAME_OPERATOR} /ox - METHOD_AFTER_DOT = / #{IDENT} [?!]? | #{METHOD_NAME_OPERATOR} /ox - INSTANCE_VARIABLE = / @ #{IDENT} /ox - CLASS_VARIABLE = / @@ #{IDENT} /ox - OBJECT_VARIABLE = / @@? #{IDENT} /ox - GLOBAL_VARIABLE = / \$ (?: #{IDENT} | [1-9]\d* | 0\w* | [~&+`'=\/,;_.<>!@$?*":\\] | -[a-zA-Z_0-9] ) /ox - PREFIX_VARIABLE = / #{GLOBAL_VARIABLE} | #{OBJECT_VARIABLE} /ox - VARIABLE = / @?@? #{IDENT} | #{GLOBAL_VARIABLE} /ox - - QUOTE_TO_TYPE = { - '`' => :shell, - '/'=> :regexp, - } - QUOTE_TO_TYPE.default = :string - - REGEXP_MODIFIERS = /[mousenix]*/ - - DECIMAL = /\d+(?:_\d+)*/ - OCTAL = /0_?[0-7]+(?:_[0-7]+)*/ - HEXADECIMAL = /0x[0-9A-Fa-f]+(?:_[0-9A-Fa-f]+)*/ - BINARY = /0b[01]+(?:_[01]+)*/ - - EXPONENT = / [eE] [+-]? #{DECIMAL} /ox - FLOAT_SUFFIX = / #{EXPONENT} | \. #{DECIMAL} #{EXPONENT}? /ox - FLOAT_OR_INT = / #{DECIMAL} (?: #{FLOAT_SUFFIX} () )? /ox - NUMERIC = / (?: (?=0) (?: #{OCTAL} | #{HEXADECIMAL} | #{BINARY} ) | #{FLOAT_OR_INT} ) /ox - - SYMBOL = / - : - (?: - #{METHOD_NAME_EX} - | #{PREFIX_VARIABLE} - | ['"] - ) - /ox - METHOD_NAME_OR_SYMBOL = / #{METHOD_NAME_EX} | #{SYMBOL} /ox - - SIMPLE_ESCAPE = / - [abefnrstv] - | [0-7]{1,3} - | x[0-9A-Fa-f]{1,2} - | . - /mx - - CONTROL_META_ESCAPE = / - (?: M-|C-|c ) - (?: \\ (?: M-|C-|c ) )* - (?: [^\\] | \\ #{SIMPLE_ESCAPE} )? - /mox - - ESCAPE = / - #{CONTROL_META_ESCAPE} | #{SIMPLE_ESCAPE} - /mox - - CHARACTER = / - \? - (?: - [^\s\\] - | \\ #{ESCAPE} - ) - /mox - - # NOTE: This is not completely correct, but - # nobody needs heredoc delimiters ending with \n. - HEREDOC_OPEN = / - << (-)? # $1 = float - (?: - ( [A-Za-z_0-9]+ ) # $2 = delim - | - ( ["'`\/] ) # $3 = quote, type - ( [^\n]*? ) \3 # $4 = delim - ) - /mx - - RUBYDOC = / - =begin (?!\S) - .*? - (?: \Z | ^=end (?!\S) [^\n]* ) - /mx - - DATA = / - __END__$ - .*? - (?: \Z | (?=^\#CODE) ) - /mx - - RUBYDOC_OR_DATA = / #{RUBYDOC} | #{DATA} /xo - - # Checks for a valid value to follow. This enables - # value_expected in method calls without parentheses. - VALUE_FOLLOWS = / - (?>[ \t\f\v]+) - (?: - [%\/][^\s=] - | <<-?\S - | [-+] \d - | #{CHARACTER} - ) - /ox - KEYWORDS_EXPECTING_VALUE = WordList.new.add(%w[ - and end in or unless begin - defined? ensure redo super until - break do next rescue then - when case else for retry - while elsif if not return - yield - ]) - - FANCY_STRING_START = / % ( [QqrsWwx] | (?![a-zA-Z0-9]) ) ([^a-zA-Z0-9]) /x - FANCY_STRING_KIND = Hash.new(:string).merge({ - 'r' => :regexp, - 's' => :symbol, - 'x' => :shell, - }) - FANCY_STRING_INTERPRETED = Hash.new(true).merge({ - 'q' => false, - 's' => false, - 'w' => false, - }) - - end - -end -end diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/ruby/string_state.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/ruby/string_state.rb deleted file mode 100644 index 2f398d1ed..000000000 --- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/ruby/string_state.rb +++ /dev/null @@ -1,71 +0,0 @@ -# encoding: utf-8 -module CodeRay -module Scanners - - class Ruby - - class StringState < Struct.new :type, :interpreted, :delim, :heredoc, - :opening_paren, :paren_depth, :pattern, :next_state # :nodoc: all - - CLOSING_PAREN = Hash[ *%w[ - ( ) - [ ] - < > - { } - ] ].each { |k,v| k.freeze; v.freeze } # debug, if I try to change it with << - - STRING_PATTERN = Hash.new do |h, k| - delim, interpreted = *k - # delim = delim.dup # workaround for old Ruby - delim_pattern = Regexp.escape(delim) - if closing_paren = CLOSING_PAREN[delim] - delim_pattern << Regexp.escape(closing_paren) - end - delim_pattern << '\\\\' unless delim == '\\' - - # special_escapes = - # case interpreted - # when :regexp_symbols - # '| [|?*+(){}\[\].^$]' - # end - - h[k] = - if interpreted && delim != '#' - / (?= [#{delim_pattern}] | \# [{$@] ) /mx - else - / (?= [#{delim_pattern}] ) /mx - end - end - - def initialize kind, interpreted, delim, heredoc = false - if heredoc - pattern = heredoc_pattern delim, interpreted, heredoc == :indented - delim = nil - else - pattern = STRING_PATTERN[ [delim, interpreted] ] - if closing_paren = CLOSING_PAREN[delim] - opening_paren = delim - delim = closing_paren - paren_depth = 1 - end - end - super kind, interpreted, delim, heredoc, opening_paren, paren_depth, pattern, :initial - end - - def heredoc_pattern delim, interpreted, indented - # delim = delim.dup # workaround for old Ruby - delim_pattern = Regexp.escape(delim) - delim_pattern = / (?:\A|\n) #{ '(?>[ \t]*)' if indented } #{ Regexp.new delim_pattern } $ /x - if interpreted - / (?= #{delim_pattern}() | \\ | \# [{$@] ) /mx # $1 set == end of heredoc - else - / (?= #{delim_pattern}() | \\ ) /mx - end - end - - end - - end - -end -end diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/sql.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/sql.rb deleted file mode 100644 index bcbffd5ac..000000000 --- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/sql.rb +++ /dev/null @@ -1,174 +0,0 @@ -module CodeRay module Scanners - - # by Josh Goebel - class SQL < Scanner - - register_for :sql - - KEYWORDS = %w( - all and any as before begin between by case check collate - each else end exists - for foreign from full group having if in inner is join - like not of on or order outer over references - then to union using values when where - left right distinct - ) - - OBJECTS = %w( - database databases table tables column columns fields index constraint - constraints transaction function procedure row key view trigger - ) - - COMMANDS = %w( - add alter comment create delete drop grant insert into select update set - show prompt begin commit rollback replace truncate - ) - - PREDEFINED_TYPES = %w( - char varchar varchar2 enum binary text tinytext mediumtext - longtext blob tinyblob mediumblob longblob timestamp - date time datetime year double decimal float int - integer tinyint mediumint bigint smallint unsigned bit - bool boolean hex bin oct - ) - - PREDEFINED_FUNCTIONS = %w( sum cast substring abs pi count min max avg now ) - - DIRECTIVES = %w( - auto_increment unique default charset initially deferred - deferrable cascade immediate read write asc desc after - primary foreign return engine - ) - - PREDEFINED_CONSTANTS = %w( null true false ) - - IDENT_KIND = WordList::CaseIgnoring.new(:ident). - add(KEYWORDS, :keyword). - add(OBJECTS, :type). - add(COMMANDS, :class). - add(PREDEFINED_TYPES, :predefined_type). - add(PREDEFINED_CONSTANTS, :predefined_constant). - add(PREDEFINED_FUNCTIONS, :predefined). - add(DIRECTIVES, :directive) - - ESCAPE = / [rbfntv\n\\\/'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} | . /mx - UNICODE_ESCAPE = / u[a-fA-F0-9]{4} | U[a-fA-F0-9]{8} /x - - STRING_PREFIXES = /[xnb]|_\w+/i - - def scan_tokens encoder, options - - state = :initial - string_type = nil - string_content = '' - name_expected = false - - until eos? - - if state == :initial - - if match = scan(/ \s+ | \\\n /x) - encoder.text_token match, :space - - elsif match = scan(/(?:--\s?|#).*/) - encoder.text_token match, :comment - - elsif match = scan(%r( /\* (!)? (?: .*? \*/ | .* ) )mx) - encoder.text_token match, self[1] ? :directive : :comment - - elsif match = scan(/ [*\/=<>:;,!&^|()\[\]{}~%] | [-+\.](?!\d) /x) - name_expected = true if match == '.' && check(/[A-Za-z_]/) - encoder.text_token match, :operator - - elsif match = scan(/(#{STRING_PREFIXES})?([`"'])/o) - prefix = self[1] - string_type = self[2] - encoder.begin_group :string - encoder.text_token prefix, :modifier if prefix - match = string_type - state = :string - encoder.text_token match, :delimiter - - elsif match = scan(/ @? [A-Za-z_][A-Za-z_0-9]* /x) - encoder.text_token match, name_expected ? :ident : (match[0] == ?@ ? :variable : IDENT_KIND[match]) - name_expected = false - - elsif match = scan(/0[xX][0-9A-Fa-f]+/) - encoder.text_token match, :hex - - elsif match = scan(/0[0-7]+(?![89.eEfF])/) - encoder.text_token match, :octal - - elsif match = scan(/[-+]?(?>\d+)(?![.eEfF])/) - encoder.text_token match, :integer - - elsif match = scan(/[-+]?(?:\d[fF]|\d*\.\d+(?:[eE][+-]?\d+)?|\d+[eE][+-]?\d+)/) - encoder.text_token match, :float - - elsif match = scan(/\\N/) - encoder.text_token match, :predefined_constant - - else - encoder.text_token getch, :error - - end - - elsif state == :string - if match = scan(/[^\\"'`]+/) - string_content << match - next - elsif match = scan(/["'`]/) - if string_type == match - if peek(1) == string_type # doubling means escape - string_content << string_type << getch - next - end - unless string_content.empty? - encoder.text_token string_content, :content - string_content = '' - end - encoder.text_token match, :delimiter - encoder.end_group :string - state = :initial - string_type = nil - else - string_content << match - end - elsif match = scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox) - unless string_content.empty? - encoder.text_token string_content, :content - string_content = '' - end - encoder.text_token match, :char - elsif match = scan(/ \\ . /mox) - string_content << match - next - elsif match = scan(/ \\ | $ /x) - unless string_content.empty? - encoder.text_token string_content, :content - string_content = '' - end - encoder.text_token match, :error - state = :initial - else - raise "else case \" reached; %p not handled." % peek(1), encoder - end - - else - raise 'else-case reached', encoder - - end - - end - - if state == :string - encoder.end_group state - end - - encoder - - end - - end - -end end
\ No newline at end of file diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/text.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/text.rb deleted file mode 100644 index bde902978..000000000 --- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/text.rb +++ /dev/null @@ -1,26 +0,0 @@ -module CodeRay - module Scanners - - # Scanner for plain text. - # - # Yields just one token of the kind :plain. - # - # Alias: +plaintext+, +plain+ - class Text < Scanner - - register_for :text - title 'Plain text' - - KINDS_NOT_LOC = [:plain] # :nodoc: - - protected - - def scan_tokens encoder, options - encoder.text_token string, :plain - encoder - end - - end - - end -end diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/xml.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/xml.rb deleted file mode 100644 index 947f16ee1..000000000 --- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/xml.rb +++ /dev/null @@ -1,17 +0,0 @@ -module CodeRay -module Scanners - - load :html - - # Scanner for XML. - # - # Currently this is the same scanner as Scanners::HTML. - class XML < HTML - - register_for :xml - file_extension 'xml' - - end - -end -end diff --git a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/yaml.rb b/vendor/gems/coderay-1.0.0/lib/coderay/scanners/yaml.rb deleted file mode 100644 index 5e74f2f79..000000000 --- a/vendor/gems/coderay-1.0.0/lib/coderay/scanners/yaml.rb +++ /dev/null @@ -1,140 +0,0 @@ -module CodeRay -module Scanners - - # Scanner for YAML. - # - # Based on the YAML scanner from Syntax by Jamis Buck. - class YAML < Scanner - - register_for :yaml - file_extension 'yml' - - KINDS_NOT_LOC = :all - - protected - - def scan_tokens encoder, options - - state = :initial - key_indent = string_indent = 0 - - until eos? - - key_indent = nil if bol? - - if match = scan(/ +[\t ]*/) - encoder.text_token match, :space - - elsif match = scan(/\n+/) - encoder.text_token match, :space - state = :initial if match.index(?\n) - - elsif match = scan(/#.*/) - encoder.text_token match, :comment - - elsif bol? and case - when match = scan(/---|\.\.\./) - encoder.begin_group :head - encoder.text_token match, :head - encoder.end_group :head - next - when match = scan(/%.*/) - encoder.text_token match, :doctype - next - end - - elsif state == :value and case - when !check(/(?:"[^"]*")(?=: |:$)/) && match = scan(/"/) - encoder.begin_group :string - encoder.text_token match, :delimiter - encoder.text_token match, :content if match = scan(/ [^"\\]* (?: \\. [^"\\]* )* /mx) - encoder.text_token match, :delimiter if match = scan(/"/) - encoder.end_group :string - next - when match = scan(/[|>][-+]?/) - encoder.begin_group :string - encoder.text_token match, :delimiter - string_indent = key_indent || column(pos - match.size) - 1 - encoder.text_token matched, :content if scan(/(?:\n+ {#{string_indent + 1}}.*)+/) - encoder.end_group :string - next - when match = scan(/(?![!"*&]).+?(?=$|\s+#)/) - encoder.begin_group :string - encoder.text_token match, :content - string_indent = key_indent || column(pos - match.size) - 1 - encoder.text_token matched, :content if scan(/(?:\n+ {#{string_indent + 1}}.*)+/) - encoder.end_group :string - next - end - - elsif case - when match = scan(/[-:](?= |$)/) - state = :value if state == :colon && (match == ':' || match == '-') - state = :value if state == :initial && match == '-' - encoder.text_token match, :operator - next - when match = scan(/[,{}\[\]]/) - encoder.text_token match, :operator - next - when state == :initial && match = scan(/[\w.() ]*\S(?= *:(?: |$))/) - encoder.text_token match, :key - key_indent = column(pos - match.size) - 1 - state = :colon - next - when match = scan(/(?:"[^"\n]*"|'[^'\n]*')(?= *:(?: |$))/) - encoder.begin_group :key - encoder.text_token match[0,1], :delimiter - encoder.text_token match[1..-2], :content - encoder.text_token match[-1,1], :delimiter - encoder.end_group :key - key_indent = column(pos - match.size) - 1 - state = :colon - next - when match = scan(/(![\w\/]+)(:([\w:]+))?/) - encoder.text_token self[1], :type - if self[2] - encoder.text_token ':', :operator - encoder.text_token self[3], :class - end - next - when match = scan(/&\S+/) - encoder.text_token match, :variable - next - when match = scan(/\*\w+/) - encoder.text_token match, :global_variable - next - when match = scan(/<</) - encoder.text_token match, :class_variable - next - when match = scan(/\d\d:\d\d:\d\d/) - encoder.text_token match, :octal - next - when match = scan(/\d\d\d\d-\d\d-\d\d\s\d\d:\d\d:\d\d(\.\d+)? [-+]\d\d:\d\d/) - encoder.text_token match, :octal - next - when match = scan(/:\w+/) - encoder.text_token match, :symbol - next - when match = scan(/[^:\s]+(:(?! |$)[^:\s]*)* .*/) - encoder.text_token match, :error - next - when match = scan(/[^:\s]+(:(?! |$)[^:\s]*)*/) - encoder.text_token match, :error - next - end - - else - raise if eos? - encoder.text_token getch, :error - - end - - end - - encoder - end - - end - -end -end |