summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormurphy <murphy@rubychan.de>2011-07-08 16:36:02 +0000
committermurphy <murphy@rubychan.de>2011-07-08 16:36:02 +0000
commit78a782fefa0c64b7f44e93b7ae56418635bb58f6 (patch)
tree53eae6464ae2f1b561f09b9e2d620ea594d6099d
parenta35793d61578a8169f49bad9efb3d44536b3951b (diff)
downloadcoderay-78a782fefa0c64b7f44e93b7ae56418635bb58f6.tar.gz
removing old version diffs
-rw-r--r--etc/0.8.1-vs-0.8.2.diff872
-rw-r--r--etc/0.8.2-vs-0.8.3.diff656
-rw-r--r--etc/0.8.3-vs-0.8.4.diff73
3 files changed, 0 insertions, 1601 deletions
diff --git a/etc/0.8.1-vs-0.8.2.diff b/etc/0.8.1-vs-0.8.2.diff
deleted file mode 100644
index ea513de..0000000
--- a/etc/0.8.1-vs-0.8.2.diff
+++ /dev/null
@@ -1,872 +0,0 @@
-Index: coderay/encoders/html/numerization.rb
-===================================================================
---- coderay/encoders/html/numerization.rb (.../tags/0.8.2/lib) (revision 302)
-+++ coderay/encoders/html/numerization.rb (.../trunk/lib) (revision 302)
-@@ -32,9 +32,19 @@
- #end
-
- bold_every = options[:bold_every]
-+ highlight_lines = options[:highlight_lines]
- bolding =
-- if bold_every == false
-+ if bold_every == false && highlight_lines == nil
- proc { |line| line.to_s }
-+ elsif highlight_lines.is_a? Enumerable
-+ highlight_lines = highlight_lines.to_set
-+ proc do |line|
-+ if highlight_lines.include? line
-+ "<strong class=\"highlighted\">#{line}</strong>" # highlighted line numbers in bold
-+ else
-+ line.to_s
-+ end
-+ end
- elsif bold_every.is_a? Integer
- raise ArgumentError, ":bolding can't be 0." if bold_every == 0
- proc do |line|
-Index: coderay/encoders/html.rb
-===================================================================
---- coderay/encoders/html.rb (.../tags/0.8.2/lib) (revision 302)
-+++ coderay/encoders/html.rb (.../trunk/lib) (revision 302)
-@@ -56,6 +56,16 @@
- #
- # Default: 10
- #
-+ # === :highlight_lines
-+ #
-+ # Highlights certain line numbers now by using the :highlight_lines option.
-+ # Can be any Enumerable, typically just an Array or Range, of numbers.
-+ #
-+ # Bolding is deactivated when :highlight_lines is set. It only makes sense
-+ # in combination with :line_numbers.
-+ #
-+ # Default: nil
-+ #
- # === :hint
- # Include some information into the output using the title attribute.
- # Can be :info (show token type on mouse-over), :info_long (with full path)
-@@ -82,6 +92,7 @@
- :line_numbers => nil,
- :line_number_start => 1,
- :bold_every => 10,
-+ :highlight_lines => nil,
-
- :hint => false,
- }
-Index: coderay/helpers/plugin.rb
-===================================================================
---- coderay/helpers/plugin.rb (.../tags/0.8.2/lib) (revision 302)
-+++ coderay/helpers/plugin.rb (.../trunk/lib) (revision 302)
-@@ -303,9 +303,17 @@
- #
- # The above example loads the file myplugin/my_helper.rb relative to the
- # file in which MyPlugin was defined.
-+ #
-+ # You can also load a helper from a different plugin:
-+ #
-+ # helper 'other_plugin/other_helper'
- def helper *helpers
- for helper in helpers
-- self::PLUGIN_HOST.require_helper plugin_id, helper.to_s
-+ if helper.is_a?(String) && helper[/\//]
-+ self::PLUGIN_HOST.require_helper $`, $'
-+ else
-+ self::PLUGIN_HOST.require_helper plugin_id, helper.to_s
-+ end
- end
- end
-
-Index: coderay/helpers/file_type.rb
-===================================================================
---- coderay/helpers/file_type.rb (.../tags/0.8.2/lib) (revision 302)
-+++ coderay/helpers/file_type.rb (.../trunk/lib) (revision 302)
-@@ -87,6 +87,8 @@
- 'mab' => :ruby,
- 'cpp' => :c,
- 'c' => :c,
-+ 'gvy' => :groovy,
-+ 'groovy' => :groovy,
- 'h' => :c,
- 'java' => :java,
- 'js' => :java_script,
-Index: coderay/helpers/gzip_simple.rb
-===================================================================
---- coderay/helpers/gzip_simple.rb (.../tags/0.8.2/lib) (revision 302)
-+++ coderay/helpers/gzip_simple.rb (.../trunk/lib) (revision 302)
-@@ -2,7 +2,7 @@
- #
- # A simplified interface to the gzip library +zlib+ (from the Ruby Standard Library.)
- #
--# Author: murphy (mail to murphy cYcnus de)
-+# Author: murphy (mail to murphy rubychan de)
- #
- # Version: 0.2 (2005.may.28)
- #
-Index: coderay/styles/cycnus.rb
-===================================================================
---- coderay/styles/cycnus.rb (.../tags/0.8.2/lib) (revision 302)
-+++ coderay/styles/cycnus.rb (.../trunk/lib) (revision 302)
-@@ -8,7 +8,7 @@
- code_background = '#f8f8f8'
- numbers_background = '#def'
- border_color = 'silver'
-- normal_color = '#100'
-+ normal_color = '#000'
-
- CSS_MAIN_STYLES = <<-MAIN
- .CodeRay {
-@@ -32,6 +32,7 @@
- text-align: right;
- }
- .CodeRay .line_numbers tt { font-weight: bold }
-+.CodeRay .line_numbers .highlighted { color: red }
- .CodeRay .no { padding: 0px 4px }
- .CodeRay .code { width: 100% }
-
-@@ -50,7 +51,7 @@
- .av { color:#700 }
- .aw { color:#C00 }
- .bi { color:#509; font-weight:bold }
--.c { color:#666; }
-+.c { color:#888; }
-
- .ch { color:#04D }
- .ch .k { color:#04D }
-@@ -77,10 +78,10 @@
- .i { color:#00D; font-weight:bold }
- .ic { color:#B44; font-weight:bold }
-
--.il { background: #eee }
-+.il { background: #eee; color: black }
- .il .il { background: #ddd }
- .il .il .il { background: #ccc }
--.il .idl { font-weight: bold; color: #888 }
-+.il .idl { font-weight: bold; color: #777 }
-
- .im { color:#f00; }
- .in { color:#B2B; font-weight:bold }
-@@ -94,7 +95,7 @@
- .pd { color:#369; font-weight:bold }
- .pp { color:#579; }
- .ps { color:#00C; font-weight: bold; }
--.pt { color:#339; font-weight:bold }
-+.pt { color:#349; font-weight:bold }
- .r, .kw { color:#080; font-weight:bold }
-
- .ke { color: #808; }
-Index: coderay/for_redcloth.rb
-===================================================================
---- coderay/for_redcloth.rb (.../tags/0.8.2/lib) (revision 302)
-+++ coderay/for_redcloth.rb (.../trunk/lib) (revision 302)
-@@ -1,4 +1,4 @@
--module CodeRay # :nodoc:
-+module CodeRay
-
- # A little hack to enable CodeRay highlighting in RedCloth.
- #
-Index: coderay/scanners/ruby/patterns.rb
-===================================================================
---- coderay/scanners/ruby/patterns.rb (.../tags/0.8.2/lib) (revision 302)
-+++ coderay/scanners/ruby/patterns.rb (.../trunk/lib) (revision 302)
-@@ -81,25 +81,30 @@
- /ox
- METHOD_NAME_OR_SYMBOL = / #{METHOD_NAME_EX} | #{SYMBOL} /ox
-
-- # TODO investigste \M, \c and \C escape sequences
-- # (?: M-\\C-|C-\\M-|M-\\c|c\\M-|c|C-|M-)? (?: \\ (?: [0-7]{3} | x[0-9A-Fa-f]{2} | . ) )
-- # assert_equal(225, ?\M-a)
-- # assert_equal(129, ?\M-\C-a)
-- ESCAPE = /
-+ SIMPLE_ESCAPE = /
- [abefnrstv]
-- | M-\\C-|C-\\M-|M-\\c|c\\M-|c|C-|M-
- | [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}
- )
-- /mx
-+ /mox
-
- # NOTE: This is not completely correct, but
- # nobody needs heredoc delimiters ending with \n.
-Index: coderay/scanners/java.rb
-===================================================================
---- coderay/scanners/java.rb (.../tags/0.8.2/lib) (revision 302)
-+++ coderay/scanners/java.rb (.../trunk/lib) (revision 302)
-@@ -30,12 +30,11 @@
- add(KEYWORDS, :keyword).
- add(MAGIC_VARIABLES, :local_variable).
- add(TYPES, :type).
-- add(BuiltinTypes::List, :type).
-+ add(BuiltinTypes::List, :pre_type).
- add(DIRECTIVES, :directive)
-
- ESCAPE = / [bfnrtv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x
- UNICODE_ESCAPE = / u[a-fA-F0-9]{4} | U[a-fA-F0-9]{8} /x
-- REGEXP_ESCAPE = / [bBdDsSwW] /x
- STRING_CONTENT_PATTERN = {
- "'" => /[^\\']+/,
- '"' => /[^\\"]+/,
-@@ -117,15 +116,11 @@
-
- end
-
-- when :string, :regexp
-+ when :string
- if scan(STRING_CONTENT_PATTERN[string_delimiter])
- kind = :content
- elsif match = scan(/["'\/]/)
- tokens << [match, :delimiter]
-- if state == :regexp
-- modifiers = scan(/[gim]+/)
-- tokens << [modifiers, :modifier] if modifiers && !modifiers.empty?
-- end
- tokens << [:close, state]
- string_delimiter = nil
- state = :initial
-@@ -136,8 +131,6 @@
- else
- kind = :char
- end
-- elsif state == :regexp && scan(/ \\ (?: #{ESCAPE} | #{REGEXP_ESCAPE} | #{UNICODE_ESCAPE} ) /mox)
-- kind = :char
- elsif scan(/\\./m)
- kind = :content
- elsif scan(/ \\ | $ /x)
-@@ -166,7 +159,7 @@
-
- end
-
-- if [:string, :regexp].include? state
-+ if state == :string
- tokens << [:close, state]
- end
-
-Index: coderay/scanners/ruby.rb
-===================================================================
---- coderay/scanners/ruby.rb (.../tags/0.8.2/lib) (revision 302)
-+++ coderay/scanners/ruby.rb (.../trunk/lib) (revision 302)
-@@ -147,6 +147,10 @@
- tokens << [match, kind]
- next
-
-+ elsif bol? && match = scan(/\#!.*/)
-+ tokens << [match, :doctype]
-+ next
-+
- elsif match = scan(/\#.*/) or
- ( bol? and match = scan(/#{patterns::RUBYDOC_OR_DATA}/o) )
- kind = :comment
-@@ -191,6 +195,7 @@
- depth -= 1
- if depth == 0 # closing brace of inline block reached
- state, depth, heredocs = inline_block_stack.pop
-+ heredocs = nil if heredocs && heredocs.empty?
- tokens << [match, :inline_delimiter]
- kind = :inline
- match = :close
-@@ -346,7 +351,7 @@
- value_expected = value_expected == :set
- last_token_dot = last_token_dot == :set
- end
--
-+
- if $DEBUG and not kind
- raise_inspect 'Error token %p in line %d' %
- [[match, kind], line], tokens, state
-Index: coderay/scanners/groovy.rb
-===================================================================
---- coderay/scanners/groovy.rb (.../tags/0.8.2/lib) (revision 0)
-+++ coderay/scanners/groovy.rb (.../trunk/lib) (revision 302)
-@@ -0,0 +1,271 @@
-+module CodeRay
-+module Scanners
-+
-+ load :java
-+
-+ class Groovy < Java
-+
-+ include Streamable
-+ register_for :groovy
-+
-+ # TODO: Check this!
-+ KEYWORDS = Java::KEYWORDS + %w[
-+ as assert def in
-+ ]
-+ KEYWORDS_EXPECTING_VALUE = WordList.new.add %w[
-+ case instanceof new return throw typeof while as assert in
-+ ]
-+
-+ MAGIC_VARIABLES = Java::MAGIC_VARIABLES + %w[ it ]
-+ # DIRECTIVES = %w[
-+ # abstract extends final implements native private protected public
-+ # static strictfp synchronized threadsafe throws transient volatile
-+ # ]
-+
-+ IDENT_KIND = WordList.new(:ident).
-+ add(KEYWORDS, :keyword).
-+ add(MAGIC_VARIABLES, :local_variable).
-+ add(TYPES, :type).
-+ add(BuiltinTypes::List, :pre_type).
-+ add(DIRECTIVES, :directive)
-+
-+ ESCAPE = / [bfnrtv$\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x
-+ UNICODE_ESCAPE = / u[a-fA-F0-9]{4} /x # 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
-+
-+ # TODO: interpretation inside ', ", /
-+ STRING_CONTENT_PATTERN = {
-+ "'" => /(?>\\[^\\'\n]+|[^\\'\n]+)+/,
-+ '"' => /[^\\$"\n]+/,
-+ "'''" => /(?>[^\\']+|'(?!''))+/,
-+ '"""' => /(?>[^\\$"]+|"(?!""))+/,
-+ '/' => /[^\\$\/\n]+/,
-+ }
-+
-+ def scan_tokens tokens, 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?
-+
-+ kind = nil
-+ match = nil
-+
-+ case state
-+
-+ when :initial
-+
-+ if match = scan(/ \s+ | \\\n /x)
-+ tokens << [match, :space]
-+ if match.index ?\n
-+ import_clause = after_def = false
-+ value_expected = true unless value_expected
-+ end
-+ next
-+
-+ elsif scan(%r! // [^\n\\]* (?: \\. [^\n\\]* )* | /\* (?: .*? \*/ | .* ) !mx)
-+ value_expected = true
-+ after_def = false
-+ kind = :comment
-+
-+ elsif bol? && scan(/ \#!.* /x)
-+ kind = :doctype
-+
-+ elsif import_clause && scan(/ (?!as) #{IDENT} (?: \. #{IDENT} )* (?: \.\* )? /ox)
-+ after_def = value_expected = false
-+ kind = :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
-+
-+ elsif scan(/;/)
-+ import_clause = after_def = false
-+ value_expected = true
-+ kind = :operator
-+
-+ elsif scan(/\{/)
-+ class_name_follows = after_def = false
-+ value_expected = true
-+ kind = :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
-+ kind = :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
-+ tokens << [match, :inline_delimiter]
-+ tokens << [:close, :inline]
-+ state, string_delimiter, inline_block_paren_depth = inline_block_stack.pop
-+ next
-+ end
-+ end
-+
-+ elsif check(/[\d.]/)
-+ after_def = value_expected = false
-+ if scan(/0[xX][0-9A-Fa-f]+/)
-+ kind = :hex
-+ elsif scan(/(?>0[0-7]+)(?![89.eEfF])/)
-+ kind = :oct
-+ elsif scan(/\d+[fFdD]|\d*\.\d+(?:[eE][+-]?\d+)?[fFdD]?|\d+[eE][+-]?\d+[fFdD]?/)
-+ kind = :float
-+ elsif scan(/\d+[lLgG]?/)
-+ kind = :integer
-+ end
-+
-+ elsif match = scan(/'''|"""/)
-+ after_def = value_expected = false
-+ state = :multiline_string
-+ tokens << [:open, :string]
-+ string_delimiter = match
-+ kind = :delimiter
-+
-+ # TODO: record.'name'
-+ elsif match = scan(/["']/)
-+ after_def = value_expected = false
-+ state = match == '/' ? :regexp : :string
-+ tokens << [:open, state]
-+ string_delimiter = match
-+ kind = :delimiter
-+
-+ elsif value_expected && (match = scan(/\//))
-+ after_def = value_expected = false
-+ tokens << [:open, :regexp]
-+ state = :regexp
-+ string_delimiter = '/'
-+ kind = :delimiter
-+
-+ elsif scan(/ @ #{IDENT} /ox)
-+ after_def = value_expected = false
-+ kind = :annotation
-+
-+ elsif scan(/\//)
-+ after_def = false
-+ value_expected = true
-+ kind = :operator
-+
-+ else
-+ getch
-+ kind = :error
-+
-+ end
-+
-+ when :string, :regexp, :multiline_string
-+ if scan(STRING_CONTENT_PATTERN[string_delimiter])
-+ kind = :content
-+
-+ elsif match = scan(state == :multiline_string ? /'''|"""/ : /["'\/]/)
-+ tokens << [match, :delimiter]
-+ if state == :regexp
-+ # TODO: regexp modifiers? s, m, x, i?
-+ modifiers = scan(/[ix]+/)
-+ tokens << [modifiers, :modifier] if modifiers && !modifiers.empty?
-+ end
-+ state = :string if state == :multiline_string
-+ tokens << [:close, 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 == "\\'")
-+ kind = :content
-+ else
-+ kind = :char
-+ end
-+ elsif state == :regexp && scan(/ \\ (?: #{REGEXP_ESCAPE} | #{UNICODE_ESCAPE} ) /mox)
-+ kind = :char
-+
-+ elsif match = scan(/ \$ #{IDENT} /mox)
-+ tokens << [:open, :inline]
-+ tokens << ['$', :inline_delimiter]
-+ match = match[1..-1]
-+ tokens << [match, IDENT_KIND[match]]
-+ tokens << [:close, :inline]
-+ next
-+ elsif match = scan(/ \$ \{ /x)
-+ tokens << [:open, :inline]
-+ tokens << ['${', :inline_delimiter]
-+ inline_block_stack << [state, string_delimiter, inline_block_paren_depth]
-+ inline_block_paren_depth = 1
-+ state = :initial
-+ next
-+
-+ elsif scan(/ \$ /mx)
-+ kind = :content
-+
-+ elsif scan(/ \\. /mx)
-+ kind = :content
-+
-+ elsif scan(/ \\ | \n /x)
-+ tokens << [:close, state]
-+ kind = :error
-+ after_def = value_expected = false
-+ state = :initial
-+
-+ else
-+ raise_inspect "else case \" reached; %p not handled." % peek(1), tokens
-+ end
-+
-+ else
-+ raise_inspect 'Unknown state', tokens
-+
-+ end
-+
-+ match ||= matched
-+ if $DEBUG and not kind
-+ raise_inspect 'Error token %p in line %d' %
-+ [[match, kind], line], tokens
-+ end
-+ raise_inspect 'Empty token', tokens unless match
-+
-+ last_token = match unless [:space, :comment, :doctype].include? kind
-+
-+ tokens << [match, kind]
-+
-+ end
-+
-+ if [:multiline_string, :string, :regexp].include? state
-+ tokens << [:close, state]
-+ end
-+
-+ tokens
-+ end
-+
-+ end
-+
-+end
-+end
-Index: coderay/scanners/css.rb
-===================================================================
---- coderay/scanners/css.rb (.../tags/0.8.2/lib) (revision 302)
-+++ coderay/scanners/css.rb (.../trunk/lib) (revision 302)
-@@ -38,6 +38,7 @@
- Id = /##{Name}/
- Class = /\.#{Name}/
- PseudoClass = /:#{Name}/
-+ AttributeSelector = /\[[^\]]*\]?/
-
- end
-
-@@ -55,8 +56,8 @@
- kind = :space
-
- elsif case states.last
-- when :initial
-- if scan(/#{RE::Ident}|\*/ox)
-+ when :initial, :media
-+ if scan(/(?>#{RE::Ident})(?!\()|\*/ox)
- kind = :keyword
- elsif scan RE::Class
- kind = :class
-@@ -64,10 +65,19 @@
- kind = :constant
- elsif scan RE::PseudoClass
- kind = :pseudo_class
-- elsif scan RE::Name
-- kind = :identifier
-+ elsif match = scan(RE::AttributeSelector)
-+ # TODO: Improve highlighting inside of attribute selectors.
-+ tokens << [:open, :string]
-+ tokens << [match[0,1], :delimiter]
-+ tokens << [match[1..-2], :content] if match.size > 2
-+ tokens << [match[-1,1], :delimiter] if match[-1] == ?]
-+ tokens << [:close, :string]
-+ next
-+ elsif match = scan(/@media/)
-+ kind = :directive
-+ states.push :media_before_name
- end
--
-+
- when :block
- if scan(/(?>#{RE::Ident})(?!\()/ox)
- if value_expected
-@@ -77,6 +87,18 @@
- end
- end
-
-+ when :media_before_name
-+ if scan RE::Ident
-+ kind = :type
-+ states[-1] = :media_after_name
-+ end
-+
-+ when :media_after_name
-+ if scan(/\{/)
-+ kind = :operator
-+ states[-1] = :media
-+ end
-+
- when :comment
- if scan(/(?:[^*\s]|\*(?!\/))+/)
- kind = :comment
-@@ -103,7 +125,7 @@
-
- elsif scan(/\}/)
- value_expected = false
-- if states.last == :block
-+ if states.last == :block || states.last == :media
- kind = :operator
- states.pop
- else
-Index: coderay/scanners/java_script.rb
-===================================================================
---- coderay/scanners/java_script.rb (.../tags/0.8.2/lib) (revision 302)
-+++ coderay/scanners/java_script.rb (.../trunk/lib) (revision 302)
-@@ -94,13 +94,22 @@
- kind = IDENT_KIND[match]
- value_expected = (kind == :keyword) && KEYWORDS_EXPECTING_VALUE[match]
- if kind == :ident
-- if match.index(?$)
-+ if match.index(?$) # $ allowed inside an identifier
- kind = :predefined
- elsif key_expected && check(/\s*:/)
- kind = :key
- end
- end
- key_expected = false
-+
-+ # TODO: string key recognition
-+ # There's a problem with expressions like: PAIRS: { 'slide': ['SlideDown','SlideUp'], ... }.
-+ # The commas in the array are confusing the scanner here.
-+ # elsif key_expected && match = scan(/["']/)
-+ # tokens << [:open, :key]
-+ # state = :key
-+ # string_delimiter = match
-+ # kind = :delimiter
-
- elsif match = scan(/["']/)
- tokens << [:open, :string]
-@@ -125,7 +134,7 @@
-
- end
-
-- when :string, :regexp
-+ when :string, :regexp, :key
- if scan(STRING_CONTENT_PATTERN[string_delimiter])
- kind = :content
- elsif match = scan(/["'\/]/)
-@@ -139,7 +148,7 @@
- key_expected = value_expected = false
- state = :initial
- next
-- elsif state == :string && (match = scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox))
-+ elsif state != :regexp && (match = scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox))
- if string_delimiter == "'" && !(match == "\\\\" || match == "\\'")
- kind = :content
- else
-@@ -150,7 +159,7 @@
- elsif scan(/\\./m)
- kind = :content
- elsif scan(/ \\ | $ /x)
-- tokens << [:close, :delimiter]
-+ tokens << [:close, state]
- kind = :error
- key_expected = value_expected = false
- state = :initial
-Index: coderay/scanners/_map.rb
-===================================================================
---- coderay/scanners/_map.rb (.../tags/0.8.2/lib) (revision 302)
-+++ coderay/scanners/_map.rb (.../trunk/lib) (revision 302)
-@@ -7,6 +7,7 @@
- :irb => :ruby,
- :xhtml => :nitro_xhtml,
- :javascript => :java_script,
-+ :js => :java_script,
- :nitro => :nitro_xhtml,
- :yml => :yaml
-
-Index: coderay.rb
-===================================================================
---- coderay.rb (.../tags/0.8.2/lib) (revision 302)
-+++ coderay.rb (.../trunk/lib) (revision 302)
-@@ -130,11 +130,11 @@
- module CodeRay
-
- # Version: Major.Minor.Teeny[.Revision]
-- # Major: 0 for pre-release
-- # Minor: odd for beta, even for stable
-- # Teeny: development state
-- # Revision: Subversion Revision number (generated on rake)
-- VERSION = '0.8'
-+ # Major: 0 for pre-stable, 1 for stable
-+ # Minor: feature milestone
-+ # Teeny: development state, 0 for pre-release
-+ # Revision: Subversion Revision number (generated on rake gem:make)
-+ VERSION = '0.9.0'
-
- require 'coderay/tokens'
- require 'coderay/scanner'
-Index: README
-===================================================================
---- README (.../tags/0.8.2/lib) (revision 0)
-+++ README (.../trunk/lib) (revision 302)
-@@ -0,0 +1,128 @@
-+= CodeRay
-+
-+[- Tired of blue'n'gray? Try the original version of this documentation on
-+coderay.rubychan.de[http://coderay.rubychan.de/doc/] (use Ctrl+Click to open it in its own frame.) -]
-+
-+== About
-+CodeRay is a Ruby library for syntax highlighting.
-+
-+Syntax highlighting means: You put your code in, and you get it back colored;
-+Keywords, strings, floats, comments - all in different colors.
-+And with line numbers.
-+
-+*Syntax* *Highlighting*...
-+* makes code easier to read and maintain
-+* lets you detect syntax errors faster
-+* helps you to understand the syntax of a language
-+* looks nice
-+* is what everybody should have on their website
-+* solves all your problems and makes the girls run after you
-+
-+Version: 0.8.1
-+Author:: murphy (Kornelius Kalnbach)
-+Contact:: murphy rubychan de
-+Website:: coderay.rubychan.de[http://coderay.rubychan.de]
-+License:: GNU LGPL; see LICENSE file in the main directory.
-+Subversion:: $Id$
-+
-+== Installation
-+
-+You need RubyGems[http://rubyforge.org/frs/?group_id=126].
-+
-+ % gem install coderay
-+
-+
-+=== Dependencies
-+
-+CodeRay needs Ruby 1.8.6 or later. It should also run with Ruby 1.9 and JRuby.
-+
-+
-+== Example Usage
-+(Forgive me, but this is not highlighted.)
-+
-+ require 'coderay'
-+
-+ tokens = CodeRay.scan "puts 'Hello, world!'", :ruby
-+ page = tokens.html :line_numbers => :inline, :wrap => :page
-+ puts page
-+
-+
-+== Documentation
-+
-+See CodeRay.
-+
-+Please report errors in this documentation to <murphy rubychan de>.
-+
-+
-+== Credits
-+
-+=== Special Thanks to
-+
-+* licenser (Heinz N. Gies) for ending my QBasic career, inventing the Coder
-+ project and the input/output plugin system.
-+ CodeRay would not exist without him.
-+* bovi (Daniel Bovensiepen) for helping me out on various occasions.
-+
-+=== Thanks to
-+
-+* Caleb Clausen for writing RubyLexer (see
-+ http://rubyforge.org/projects/rubylexer) and lots of very interesting mail
-+ traffic
-+* birkenfeld (Georg Brandl) and mitsuhiku (Arnim Ronacher) for PyKleur, now pygments.
-+ You guys rock!
-+* Jamis Buck for writing Syntax (see http://rubyforge.org/projects/syntax)
-+ I got some useful ideas from it.
-+* Doug Kearns and everyone else who worked on ruby.vim - it not only helped me
-+ coding CodeRay, but also gave me a wonderful target to reach for the Ruby
-+ scanner.
-+* everyone who uses CodeBB on http://www.rubyforen.de and http://www.python-forum.de
-+* iGEL, magichisoka, manveru, WoNáDo and everyone I forgot from rubyforen.de
-+* Dethix from ruby-mine.de
-+* zickzackw
-+* Dookie (who is no longer with us...) and Leonidas from http://www.python-forum.de
-+* Andreas Schwarz for finding out that CaseIgnoringWordList was not case
-+ ignoring! Such things really make you write tests.
-+* closure for the first version of the Scheme scanner.
-+* Stefan Walk for the first version of the JavaScript scanner.
-+* Josh Goebel for another version of the JavaScript scanner and a Diff scanner.
-+* Jonathan Younger for pointing out the licence confusion caused by wrong LICENSE file.
-+* Jeremy Hinegardner for finding the shebang-on-empty-file bug in FileType.
-+* Charles Oliver Nutter and Yehuda Katz for helping me benchmark CodeRay on JRuby.
-+* The folks at redmine.org - thank you for using and fixing CodeRay!
-+* matz and all Ruby gods and gurus
-+* The inventors of: the computer, the internet, the true color display, HTML &
-+ CSS, VIM, RUBY, pizza, microwaves, guitars, scouting, programming, anime,
-+ manga, coke and green ice tea.
-+
-+Where would we be without all those people?
-+
-+=== Created using
-+
-+* Ruby[http://ruby-lang.org/]
-+* Chihiro (my Sony VAIO laptop); Henrietta (my old MacBook);
-+ Triella, born Rico (my new MacBook); as well as
-+ Seras and Hikari (my PCs)
-+* RDE[http://homepage2.nifty.com/sakazuki/rde_e.html],
-+ VIM[http://vim.org] and TextMate[http://macromates.com]
-+* Subversion[http://subversion.tigris.org/]
-+* Redmine[http://redmine.org/]
-+* Firefox[http://www.mozilla.org/products/firefox/],
-+ Firebug[http://getfirebug.com/], and
-+ Thunderbird[http://www.mozilla.org/products/thunderbird/]
-+* RubyGems[http://docs.rubygems.org/] and Rake[http://rake.rubyforge.org/]
-+* TortoiseSVN[http://tortoisesvn.tigris.org/] using Apache via
-+ XAMPP[http://www.apachefriends.org/en/xampp.html]
-+* RDoc (though I'm quite unsatisfied with it)
-+* Microsoft Windows (yes, I confess!) and MacOS X
-+* GNUWin32, MinGW and some other tools to make the shell under windows a bit
-+ less useless
-+* Term::ANSIColor[http://term-ansicolor.rubyforge.org/]
-+* PLEAC[http://pleac.sourceforge.net/] code examples
-+
-+=== Free
-+
-+* As you can see, CodeRay was created under heavy use of *free* software.
-+* So CodeRay is also *free*.
-+* If you use CodeRay to create software, think about making this software
-+ *free*, too.
-+* Thanks :)
-
-Property changes on: README
-___________________________________________________________________
-Added: svn:keywords
- + Id
-Added: svn:mergeinfo
-
diff --git a/etc/0.8.2-vs-0.8.3.diff b/etc/0.8.2-vs-0.8.3.diff
deleted file mode 100644
index a3d19ca..0000000
--- a/etc/0.8.2-vs-0.8.3.diff
+++ /dev/null
@@ -1,656 +0,0 @@
-Index: test/functional/basic.rb
-===================================================================
---- test/functional/basic.rb (revision 308)
-+++ test/functional/basic.rb (working copy)
-@@ -48,11 +48,30 @@
- <div lang="ruby" class="CodeRay">
- <div class="code"><pre>puts <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">Hello, World!</span><span style="color:#710">&quot;</span></span></pre></div>
- </div>
--</pre>
- BLOCKCODE
- RedCloth.new('bc[ruby]. puts "Hello, World!"').to_html
- end
-
-+ def test_for_redcloth_no_lang
-+ require 'rubygems'
-+ require 'coderay/for_redcloth'
-+ assert_equal "<p><code>puts \"Hello, World!\"</code></p>",
-+ RedCloth.new('@puts "Hello, World!"@').to_html
-+ assert_equal <<-BLOCKCODE.chomp,
-+<pre><code>puts \"Hello, World!\"</code></pre>
-+ BLOCKCODE
-+ RedCloth.new('bc. puts "Hello, World!"').to_html
-+ end
-+
-+ def test_for_redcloth_style
-+ require 'rubygems'
-+ require 'coderay/for_redcloth'
-+ assert_equal <<-BLOCKCODE.chomp,
-+<pre style=\"color: red;\"><code style=\"color: red;\">puts \"Hello, World!\"</code></pre>
-+ BLOCKCODE
-+ RedCloth.new('bc{color: red}. puts "Hello, World!"').to_html
-+ end
-+
- def test_for_redcloth_escapes
- require 'rubygems'
- require 'coderay/for_redcloth'
-@@ -62,7 +81,6 @@
- <div lang="ruby" class="CodeRay">
- <div class="code"><pre>&amp;</pre></div>
- </div>
--</pre>
- BLOCKCODE
- RedCloth.new('bc[ruby]. &').to_html
- end
-Index: test/scanners/java/jruby.expected.raydebug
-===================================================================
---- test/scanners/java/jruby.expected.raydebug (revision 308)
-+++ test/scanners/java/jruby.expected.raydebug (working copy)
-@@ -50,7 +50,7 @@
- * @author pldms
- *
- */)
--directive(public) type(interface) ident(Finalizable) operator({)
-+directive(public) type(interface) class(Finalizable) operator({)
- directive(public) type(void) ident(finalize)operator(()operator(\))operator(;)
- operator(})
- comment(/***** BEGIN LICENSE BLOCK *****
-@@ -91,7 +91,7 @@
- * The purpose of this class it to help implement the Errno module which in turn in needed by rubicon.
- * @author Benoit Cerrina
- **/)
--directive(public) type(interface) ident(IErrno)
-+directive(public) type(interface) class(IErrno)
- operator({)
- type(int) ident(EPERM) operator(=) integer(1)operator(;)
- type(int) ident(ENOENT) operator(=) integer(2)operator(;)
-@@ -590,7 +590,7 @@
- directive(private) pre_type(Graphics) ident(backBufferGraphics)operator(;)
- directive(private) ident(Facade) ident(facade)operator(;)
-
-- directive(private) type(interface) ident(Facade) operator({)
-+ directive(private) type(interface) class(Facade) operator({)
- directive(public) pre_type(InputStream) ident(getInputStream)operator(()operator(\))operator(;)
- directive(public) pre_type(PrintStream) ident(getOutputStream)operator(()operator(\))operator(;)
- directive(public) pre_type(PrintStream) ident(getErrorStream)operator(()operator(\))operator(;)
-@@ -1742,7 +1742,7 @@
- comment(/**
- * @author <a href="mailto:ola.bini@ki.se">Ola Bini</a>
- */)
--directive(public) type(interface) ident(Profile) operator({)
-+directive(public) type(interface) class(Profile) operator({)
- ident(Profile) ident(ALL) operator(=) keyword(new) ident(Profile)operator(()operator(\)) operator({)
- directive(public) type(boolean) ident(allowBuiltin)operator(()pre_type(String) ident(name)operator(\)) operator({) keyword(return) keyword(true)operator(;) operator(})
- directive(public) type(boolean) ident(allowClass)operator(()pre_type(String) ident(name)operator(\)) operator({) keyword(return) keyword(true)operator(;) operator(})
-@@ -21557,7 +21557,7 @@
- directive(public) directive(static) type(boolean) ident(nativeEnabled) operator(=) keyword(true)operator(;)
-
-
-- directive(public) directive(static) type(interface) ident(LoadServiceCreator) operator({)
-+ directive(public) directive(static) type(interface) class(LoadServiceCreator) operator({)
- ident(LoadService) ident(create)operator(()ident(Ruby) ident(runtime)operator(\))operator(;)
-
- ident(LoadServiceCreator) ident(DEFAULT) operator(=) keyword(new) ident(LoadServiceCreator)operator(()operator(\)) operator({)
-@@ -36946,7 +36946,7 @@
- *
- * @author nicksieger
- */)
--directive(public) type(interface) ident(RubyObjectAdapter) operator({)
-+directive(public) type(interface) class(RubyObjectAdapter) operator({)
-
- type(boolean) ident(isKindOf)operator(()ident(IRubyObject) ident(value)operator(,) ident(RubyModule) ident(rubyModule)operator(\))operator(;)
-
-@@ -40779,7 +40779,7 @@
- *
- * @author nicksieger
- */)
--directive(public) type(interface) ident(RubyRuntimeAdapter) operator({)
-+directive(public) type(interface) class(RubyRuntimeAdapter) operator({)
- ident(IRubyObject) ident(eval)operator(()ident(Ruby) ident(runtime)operator(,) pre_type(String) ident(script)operator(\))operator(;)
- operator(})
- comment(/***** BEGIN LICENSE BLOCK *****
-Index: test/scanners/javascript/script.aculo.us.expected.raydebug
-===================================================================
---- test/scanners/javascript/script.aculo.us.expected.raydebug (revision 308)
-+++ test/scanners/javascript/script.aculo.us.expected.raydebug (working copy)
-@@ -2083,9 +2083,9 @@
- operator(}\))operator(;)
- operator(})operator(,)
- key(PAIRS)operator(:) operator({)
-- string<delimiter(')content(slide)delimiter(')>operator(:) operator([)string<delimiter(')content(SlideDown)delimiter(')>operator(,)string<delimiter(')content(SlideUp)delimiter(')>operator(])operator(,)
-- string<delimiter(')content(blind)delimiter(')>operator(:) operator([)string<delimiter(')content(BlindDown)delimiter(')>operator(,)string<delimiter(')content(BlindUp)delimiter(')>operator(])operator(,)
-- string<delimiter(')content(appear)delimiter(')>operator(:) operator([)string<delimiter(')content(Appear)delimiter(')>operator(,)string<delimiter(')content(Fade)delimiter(')>operator(])
-+ key<delimiter(')content(slide)delimiter(')>operator(:) operator([)string<delimiter(')content(SlideDown)delimiter(')>operator(,)string<delimiter(')content(SlideUp)delimiter(')>operator(])operator(,)
-+ key<delimiter(')content(blind)delimiter(')>operator(:) operator([)string<delimiter(')content(BlindDown)delimiter(')>operator(,)string<delimiter(')content(BlindUp)delimiter(')>operator(])operator(,)
-+ key<delimiter(')content(appear)delimiter(')>operator(:) operator([)string<delimiter(')content(Appear)delimiter(')>operator(,)string<delimiter(')content(Fade)delimiter(')>operator(])
- operator(})operator(,)
- key(toggle)operator(:) keyword(function)operator(()ident(element)operator(,) ident(effect)operator(\)) operator({)
- ident(element) operator(=) predefined($)operator(()ident(element)operator(\))operator(;)
-@@ -3378,12 +3378,12 @@
- keyword(return) ident(value) operator(==) keyword(null) operator(?) string<delimiter(')delimiter(')> operator(:) ident(String)operator(()ident(value)operator(\))operator(;)
- operator(})operator(,)
- key(specialChar)operator(:) operator({)
-- string<delimiter(')content(\\b)delimiter(')>operator(:) string<delimiter(')char(\\\\)content(b)delimiter(')>operator(,)
-- string<delimiter(')content(\\t)delimiter(')>operator(:) string<delimiter(')char(\\\\)content(t)delimiter(')>operator(,)
-- string<delimiter(')content(\\n)delimiter(')>operator(:) string<delimiter(')char(\\\\)content(n)delimiter(')>operator(,)
-- string<delimiter(')content(\\f)delimiter(')>operator(:) string<delimiter(')char(\\\\)content(f)delimiter(')>operator(,)
-- string<delimiter(')content(\\r)delimiter(')>operator(:) string<delimiter(')char(\\\\)content(r)delimiter(')>operator(,)
-- string<delimiter(')char(\\\\)delimiter(')>operator(:) string<delimiter(')char(\\\\)char(\\\\)delimiter(')>
-+ key<delimiter(')content(\\b)delimiter(')>operator(:) string<delimiter(')char(\\\\)content(b)delimiter(')>operator(,)
-+ key<delimiter(')content(\\t)delimiter(')>operator(:) string<delimiter(')char(\\\\)content(t)delimiter(')>operator(,)
-+ key<delimiter(')content(\\n)delimiter(')>operator(:) string<delimiter(')char(\\\\)content(n)delimiter(')>operator(,)
-+ key<delimiter(')content(\\f)delimiter(')>operator(:) string<delimiter(')char(\\\\)content(f)delimiter(')>operator(,)
-+ key<delimiter(')content(\\r)delimiter(')>operator(:) string<delimiter(')char(\\\\)content(r)delimiter(')>operator(,)
-+ key<delimiter(')char(\\\\)delimiter(')>operator(:) string<delimiter(')char(\\\\)char(\\\\)delimiter(')>
- operator(})
- operator(}\))operator(;)
-
-@@ -4296,9 +4296,9 @@
-
- key(setRequestHeaders)operator(:) keyword(function)operator(()operator(\)) operator({)
- keyword(var) ident(headers) operator(=) operator({)
-- string<delimiter(')content(X-Requested-With)delimiter(')>operator(:) string<delimiter(')content(XMLHttpRequest)delimiter(')>operator(,)
-- string<delimiter(')content(X-Prototype-Version)delimiter(')>operator(:) ident(Prototype)operator(.)ident(Version)operator(,)
-- string<delimiter(')content(Accept)delimiter(')>operator(:) string<delimiter(')content(text/javascript, text/html, application/xml, text/xml, */*)delimiter(')>
-+ key<delimiter(')content(X-Requested-With)delimiter(')>operator(:) string<delimiter(')content(XMLHttpRequest)delimiter(')>operator(,)
-+ key<delimiter(')content(X-Prototype-Version)delimiter(')>operator(:) ident(Prototype)operator(.)ident(Version)operator(,)
-+ key<delimiter(')content(Accept)delimiter(')>operator(:) string<delimiter(')content(text/javascript, text/html, application/xml, text/xml, */*)delimiter(')>
- operator(})operator(;)
-
- keyword(if) operator(()local_variable(this)operator(.)ident(method) operator(==) string<delimiter(')content(post)delimiter(')>operator(\)) operator({)
-@@ -4705,7 +4705,7 @@
- key(inspect)operator(:) keyword(function)operator(()ident(element)operator(\)) operator({)
- ident(element) operator(=) predefined($)operator(()ident(element)operator(\))operator(;)
- keyword(var) ident(result) operator(=) string<delimiter(')content(<)delimiter(')> operator(+) ident(element)operator(.)ident(tagName)operator(.)ident(toLowerCase)operator(()operator(\))operator(;)
-- predefined($H)operator(({)string<delimiter(')content(id)delimiter(')>operator(:) string<delimiter(')content(id)delimiter(')>operator(,) string<delimiter(')content(className)delimiter(')>operator(:) string<delimiter(')content(class)delimiter(')>operator(}\))operator(.)ident(each)operator(()keyword(function)operator(()ident(pair)operator(\)) operator({)
-+ predefined($H)operator(({)key<delimiter(')content(id)delimiter(')>operator(:) string<delimiter(')content(id)delimiter(')>operator(,) key<delimiter(')content(className)delimiter(')>operator(:) string<delimiter(')content(class)delimiter(')>operator(}\))operator(.)ident(each)operator(()keyword(function)operator(()ident(pair)operator(\)) operator({)
- keyword(var) ident(property) operator(=) ident(pair)operator(.)ident(first)operator(()operator(\))operator(,) ident(attribute) operator(=) ident(pair)operator(.)ident(last)operator(()operator(\))operator(;)
- keyword(var) ident(value) operator(=) operator(()ident(element)operator([)ident(property)operator(]) operator(||) string<delimiter(')delimiter(')>operator(\))operator(.)ident(toString)operator(()operator(\))operator(;)
- keyword(if) operator(()ident(value)operator(\)) ident(result) operator(+=) string<delimiter(')content( )delimiter(')> operator(+) ident(attribute) operator(+) string<delimiter(')content(=)delimiter(')> operator(+) ident(value)operator(.)ident(inspect)operator(()keyword(true)operator(\))operator(;)
-@@ -5352,8 +5352,8 @@
- ident(Element)operator(.)ident(_attributeTranslations) operator(=) operator({)
- key(read)operator(:) operator({)
- key(names)operator(:) operator({)
-- string<delimiter(')content(class)delimiter(')>operator(:) string<delimiter(')content(className)delimiter(')>operator(,)
-- string<delimiter(')content(for)delimiter(')>operator(:) string<delimiter(')content(htmlFor)delimiter(')>
-+ key<delimiter(')content(class)delimiter(')>operator(:) string<delimiter(')content(className)delimiter(')>operator(,)
-+ key<delimiter(')content(for)delimiter(')>operator(:) string<delimiter(')content(htmlFor)delimiter(')>
- operator(})operator(,)
- key(values)operator(:) operator({)
- key(_getAttr)operator(:) keyword(function)operator(()ident(element)operator(,) ident(attribute)operator(\)) operator({)
-@@ -5667,10 +5667,10 @@
- ident(Object)operator(.)ident(extend)operator(()ident(Form)operator(,) ident(Form)operator(.)ident(Methods)operator(\))operator(;)
- ident(Object)operator(.)ident(extend)operator(()ident(Form)operator(.)ident(Element)operator(,) ident(Form)operator(.)ident(Element)operator(.)ident(Methods)operator(\))operator(;)
- ident(Object)operator(.)ident(extend)operator(()ident(Element)operator(.)ident(Methods)operator(.)ident(ByTag)operator(,) operator({)
-- string<delimiter(")content(FORM)delimiter(")>operator(:) ident(Object)operator(.)ident(clone)operator(()ident(Form)operator(.)ident(Methods)operator(\))operator(,)
-- string<delimiter(")content(INPUT)delimiter(")>operator(:) ident(Object)operator(.)ident(clone)operator(()ident(Form)operator(.)ident(Element)operator(.)ident(Methods)operator(\))operator(,)
-- string<delimiter(")content(SELECT)delimiter(")>operator(:) ident(Object)operator(.)ident(clone)operator(()ident(Form)operator(.)ident(Element)operator(.)ident(Methods)operator(\))operator(,)
-- string<delimiter(")content(TEXTAREA)delimiter(")>operator(:) ident(Object)operator(.)ident(clone)operator(()ident(Form)operator(.)ident(Element)operator(.)ident(Methods)operator(\))
-+ key<delimiter(")content(FORM)delimiter(")>operator(:) ident(Object)operator(.)ident(clone)operator(()ident(Form)operator(.)ident(Methods)operator(\))operator(,)
-+ key<delimiter(")content(INPUT)delimiter(")>operator(:) ident(Object)operator(.)ident(clone)operator(()ident(Form)operator(.)ident(Element)operator(.)ident(Methods)operator(\))operator(,)
-+ key<delimiter(")content(SELECT)delimiter(")>operator(:) ident(Object)operator(.)ident(clone)operator(()ident(Form)operator(.)ident(Element)operator(.)ident(Methods)operator(\))operator(,)
-+ key<delimiter(")content(TEXTAREA)delimiter(")>operator(:) ident(Object)operator(.)ident(clone)operator(()ident(Form)operator(.)ident(Element)operator(.)ident(Methods)operator(\))
- operator(}\))operator(;)
- operator(})
-
-@@ -5705,15 +5705,15 @@
- keyword(function) ident(findDOMClass)operator(()ident(tagName)operator(\)) operator({)
- keyword(var) ident(klass)operator(;)
- keyword(var) ident(trans) operator(=) operator({)
-- string<delimiter(")content(OPTGROUP)delimiter(")>operator(:) string<delimiter(")content(OptGroup)delimiter(")>operator(,) string<delimiter(")content(TEXTAREA)delimiter(")>operator(:) string<delimiter(")content(TextArea)delimiter(")>operator(,) string<delimiter(")content(P)delimiter(")>operator(:) string<delimiter(")content(Paragraph)delimiter(")>operator(,)
-- string<delimiter(")content(FIELDSET)delimiter(")>operator(:) string<delimiter(")content(FieldSet)delimiter(")>operator(,) string<delimiter(")content(UL)delimiter(")>operator(:) string<delimiter(")content(UList)delimiter(")>operator(,) string<delimiter(")content(OL)delimiter(")>operator(:) string<delimiter(")content(OList)delimiter(")>operator(,) string<delimiter(")content(DL)delimiter(")>operator(:) string<delimiter(")content(DList)delimiter(")>operator(,)
-- string<delimiter(")content(DIR)delimiter(")>operator(:) string<delimiter(")content(Directory)delimiter(")>operator(,) string<delimiter(")content(H1)delimiter(")>operator(:) string<delimiter(")content(Heading)delimiter(")>operator(,) string<delimiter(")content(H2)delimiter(")>operator(:) string<delimiter(")content(Heading)delimiter(")>operator(,) string<delimiter(")content(H3)delimiter(")>operator(:) string<delimiter(")content(Heading)delimiter(")>operator(,)
-- string<delimiter(")content(H4)delimiter(")>operator(:) string<delimiter(")content(Heading)delimiter(")>operator(,) string<delimiter(")content(H5)delimiter(")>operator(:) string<delimiter(")content(Heading)delimiter(")>operator(,) string<delimiter(")content(H6)delimiter(")>operator(:) string<delimiter(")content(Heading)delimiter(")>operator(,) string<delimiter(")content(Q)delimiter(")>operator(:) string<delimiter(")content(Quote)delimiter(")>operator(,)
-- string<delimiter(")content(INS)delimiter(")>operator(:) string<delimiter(")content(Mod)delimiter(")>operator(,) string<delimiter(")content(DEL)delimiter(")>operator(:) string<delimiter(")content(Mod)delimiter(")>operator(,) string<delimiter(")content(A)delimiter(")>operator(:) string<delimiter(")content(Anchor)delimiter(")>operator(,) string<delimiter(")content(IMG)delimiter(")>operator(:) string<delimiter(")content(Image)delimiter(")>operator(,) string<delimiter(")content(CAPTION)delimiter(")>operator(:)
-- string<delimiter(")content(TableCaption)delimiter(")>operator(,) string<delimiter(")content(COL)delimiter(")>operator(:) string<delimiter(")content(TableCol)delimiter(")>operator(,) string<delimiter(")content(COLGROUP)delimiter(")>operator(:) string<delimiter(")content(TableCol)delimiter(")>operator(,) string<delimiter(")content(THEAD)delimiter(")>operator(:)
-- string<delimiter(")content(TableSection)delimiter(")>operator(,) string<delimiter(")content(TFOOT)delimiter(")>operator(:) string<delimiter(")content(TableSection)delimiter(")>operator(,) string<delimiter(")content(TBODY)delimiter(")>operator(:) string<delimiter(")content(TableSection)delimiter(")>operator(,) string<delimiter(")content(TR)delimiter(")>operator(:)
-- string<delimiter(")content(TableRow)delimiter(")>operator(,) string<delimiter(")content(TH)delimiter(")>operator(:) string<delimiter(")content(TableCell)delimiter(")>operator(,) string<delimiter(")content(TD)delimiter(")>operator(:) string<delimiter(")content(TableCell)delimiter(")>operator(,) string<delimiter(")content(FRAMESET)delimiter(")>operator(:)
-- string<delimiter(")content(FrameSet)delimiter(")>operator(,) string<delimiter(")content(IFRAME)delimiter(")>operator(:) string<delimiter(")content(IFrame)delimiter(")>
-+ key<delimiter(")content(OPTGROUP)delimiter(")>operator(:) string<delimiter(")content(OptGroup)delimiter(")>operator(,) key<delimiter(")content(TEXTAREA)delimiter(")>operator(:) string<delimiter(")content(TextArea)delimiter(")>operator(,) key<delimiter(")content(P)delimiter(")>operator(:) string<delimiter(")content(Paragraph)delimiter(")>operator(,)
-+ key<delimiter(")content(FIELDSET)delimiter(")>operator(:) string<delimiter(")content(FieldSet)delimiter(")>operator(,) key<delimiter(")content(UL)delimiter(")>operator(:) string<delimiter(")content(UList)delimiter(")>operator(,) key<delimiter(")content(OL)delimiter(")>operator(:) string<delimiter(")content(OList)delimiter(")>operator(,) key<delimiter(")content(DL)delimiter(")>operator(:) string<delimiter(")content(DList)delimiter(")>operator(,)
-+ key<delimiter(")content(DIR)delimiter(")>operator(:) string<delimiter(")content(Directory)delimiter(")>operator(,) key<delimiter(")content(H1)delimiter(")>operator(:) string<delimiter(")content(Heading)delimiter(")>operator(,) key<delimiter(")content(H2)delimiter(")>operator(:) string<delimiter(")content(Heading)delimiter(")>operator(,) key<delimiter(")content(H3)delimiter(")>operator(:) string<delimiter(")content(Heading)delimiter(")>operator(,)
-+ key<delimiter(")content(H4)delimiter(")>operator(:) string<delimiter(")content(Heading)delimiter(")>operator(,) key<delimiter(")content(H5)delimiter(")>operator(:) string<delimiter(")content(Heading)delimiter(")>operator(,) key<delimiter(")content(H6)delimiter(")>operator(:) string<delimiter(")content(Heading)delimiter(")>operator(,) key<delimiter(")content(Q)delimiter(")>operator(:) string<delimiter(")content(Quote)delimiter(")>operator(,)
-+ key<delimiter(")content(INS)delimiter(")>operator(:) string<delimiter(")content(Mod)delimiter(")>operator(,) key<delimiter(")content(DEL)delimiter(")>operator(:) string<delimiter(")content(Mod)delimiter(")>operator(,) key<delimiter(")content(A)delimiter(")>operator(:) string<delimiter(")content(Anchor)delimiter(")>operator(,) key<delimiter(")content(IMG)delimiter(")>operator(:) string<delimiter(")content(Image)delimiter(")>operator(,) key<delimiter(")content(CAPTION)delimiter(")>operator(:)
-+ string<delimiter(")content(TableCaption)delimiter(")>operator(,) key<delimiter(")content(COL)delimiter(")>operator(:) string<delimiter(")content(TableCol)delimiter(")>operator(,) key<delimiter(")content(COLGROUP)delimiter(")>operator(:) string<delimiter(")content(TableCol)delimiter(")>operator(,) key<delimiter(")content(THEAD)delimiter(")>operator(:)
-+ string<delimiter(")content(TableSection)delimiter(")>operator(,) key<delimiter(")content(TFOOT)delimiter(")>operator(:) string<delimiter(")content(TableSection)delimiter(")>operator(,) key<delimiter(")content(TBODY)delimiter(")>operator(:) string<delimiter(")content(TableSection)delimiter(")>operator(,) key<delimiter(")content(TR)delimiter(")>operator(:)
-+ string<delimiter(")content(TableRow)delimiter(")>operator(,) key<delimiter(")content(TH)delimiter(")>operator(:) string<delimiter(")content(TableCell)delimiter(")>operator(,) key<delimiter(")content(TD)delimiter(")>operator(:) string<delimiter(")content(TableCell)delimiter(")>operator(,) key<delimiter(")content(FRAMESET)delimiter(")>operator(:)
-+ string<delimiter(")content(FrameSet)delimiter(")>operator(,) key<delimiter(")content(IFRAME)delimiter(")>operator(:) string<delimiter(")content(IFrame)delimiter(")>
- operator(})operator(;)
- keyword(if) operator(()ident(trans)operator([)ident(tagName)operator(]\)) ident(klass) operator(=) string<delimiter(')content(HTML)delimiter(')> operator(+) ident(trans)operator([)ident(tagName)operator(]) operator(+) string<delimiter(')content(Element)delimiter(')>operator(;)
- keyword(if) operator(()ident(window)operator([)ident(klass)operator(]\)) keyword(return) ident(window)operator([)ident(klass)operator(])operator(;)
-@@ -5941,23 +5941,23 @@
- keyword(return) keyword(new) ident(Template)operator(()ident(Selector)operator(.)ident(xpath)operator(.)ident(pseudos)operator([)ident(m)operator([)integer(1)operator(]]\))operator(.)ident(evaluate)operator(()ident(m)operator(\))operator(;)
- operator(})operator(,)
- key(operators)operator(:) operator({)
-- string<delimiter(')content(=)delimiter(')>operator(:) string<delimiter(")content([@#{1}='#{3}'])delimiter(")>operator(,)
-- string<delimiter(')content(!=)delimiter(')>operator(:) string<delimiter(")content([@#{1}!='#{3}'])delimiter(")>operator(,)
-- string<delimiter(')content(^=)delimiter(')>operator(:) string<delimiter(")content([starts-with(@#{1}, '#{3}'\)])delimiter(")>operator(,)
-- string<delimiter(')content($=)delimiter(')>operator(:) string<delimiter(")content([substring(@#{1}, (string-length(@#{1}\) - string-length('#{3}'\) + 1\)\)='#{3}'])delimiter(")>operator(,)
-- string<delimiter(')content(*=)delimiter(')>operator(:) string<delimiter(")content([contains(@#{1}, '#{3}'\)])delimiter(")>operator(,)
-- string<delimiter(')content(~=)delimiter(')>operator(:) string<delimiter(")content([contains(concat(' ', @#{1}, ' '\), ' #{3} '\)])delimiter(")>operator(,)
-- string<delimiter(')content(|=)delimiter(')>operator(:) string<delimiter(")content([contains(concat('-', @#{1}, '-'\), '-#{3}-'\)])delimiter(")>
-+ key<delimiter(')content(=)delimiter(')>operator(:) string<delimiter(")content([@#{1}='#{3}'])delimiter(")>operator(,)
-+ key<delimiter(')content(!=)delimiter(')>operator(:) string<delimiter(")content([@#{1}!='#{3}'])delimiter(")>operator(,)
-+ key<delimiter(')content(^=)delimiter(')>operator(:) string<delimiter(")content([starts-with(@#{1}, '#{3}'\)])delimiter(")>operator(,)
-+ key<delimiter(')content($=)delimiter(')>operator(:) string<delimiter(")content([substring(@#{1}, (string-length(@#{1}\) - string-length('#{3}'\) + 1\)\)='#{3}'])delimiter(")>operator(,)
-+ key<delimiter(')content(*=)delimiter(')>operator(:) string<delimiter(")content([contains(@#{1}, '#{3}'\)])delimiter(")>operator(,)
-+ key<delimiter(')content(~=)delimiter(')>operator(:) string<delimiter(")content([contains(concat(' ', @#{1}, ' '\), ' #{3} '\)])delimiter(")>operator(,)
-+ key<delimiter(')content(|=)delimiter(')>operator(:) string<delimiter(")content([contains(concat('-', @#{1}, '-'\), '-#{3}-'\)])delimiter(")>
- operator(})operator(,)
- key(pseudos)operator(:) operator({)
-- string<delimiter(')content(first-child)delimiter(')>operator(:) string<delimiter(')content([not(preceding-sibling::*\)])delimiter(')>operator(,)
-- string<delimiter(')content(last-child)delimiter(')>operator(:) string<delimiter(')content([not(following-sibling::*\)])delimiter(')>operator(,)
-- string<delimiter(')content(only-child)delimiter(')>operator(:) string<delimiter(')content([not(preceding-sibling::* or following-sibling::*\)])delimiter(')>operator(,)
-- string<delimiter(')content(empty)delimiter(')>operator(:) string<delimiter(")content([count(*\) = 0 and (count(text(\)\) = 0 or translate(text(\), ' )char(\\t)char(\\r)char(\\n)content(', ''\) = ''\)])delimiter(")>operator(,)
-- string<delimiter(')content(checked)delimiter(')>operator(:) string<delimiter(")content([@checked])delimiter(")>operator(,)
-- string<delimiter(')content(disabled)delimiter(')>operator(:) string<delimiter(")content([@disabled])delimiter(")>operator(,)
-- string<delimiter(')content(enabled)delimiter(')>operator(:) string<delimiter(")content([not(@disabled\)])delimiter(")>operator(,)
-- string<delimiter(')content(not)delimiter(')>operator(:) keyword(function)operator(()ident(m)operator(\)) operator({)
-+ key<delimiter(')content(first-child)delimiter(')>operator(:) string<delimiter(')content([not(preceding-sibling::*\)])delimiter(')>operator(,)
-+ key<delimiter(')content(last-child)delimiter(')>operator(:) string<delimiter(')content([not(following-sibling::*\)])delimiter(')>operator(,)
-+ key<delimiter(')content(only-child)delimiter(')>operator(:) string<delimiter(')content([not(preceding-sibling::* or following-sibling::*\)])delimiter(')>operator(,)
-+ key<delimiter(')content(empty)delimiter(')>operator(:) string<delimiter(")content([count(*\) = 0 and (count(text(\)\) = 0 or translate(text(\), ' )char(\\t)char(\\r)char(\\n)content(', ''\) = ''\)])delimiter(")>operator(,)
-+ key<delimiter(')content(checked)delimiter(')>operator(:) string<delimiter(")content([@checked])delimiter(")>operator(,)
-+ key<delimiter(')content(disabled)delimiter(')>operator(:) string<delimiter(")content([@disabled])delimiter(")>operator(,)
-+ key<delimiter(')content(enabled)delimiter(')>operator(:) string<delimiter(")content([not(@disabled\)])delimiter(")>operator(,)
-+ key<delimiter(')content(not)delimiter(')>operator(:) keyword(function)operator(()ident(m)operator(\)) operator({)
- keyword(var) ident(e) operator(=) ident(m)operator([)integer(6)operator(])operator(,) ident(p) operator(=) ident(Selector)operator(.)ident(patterns)operator(,)
- ident(x) operator(=) ident(Selector)operator(.)ident(xpath)operator(,) ident(le)operator(,) ident(v)operator(;)
-
-@@ -5975,25 +5975,25 @@
- operator(})
- keyword(return) string<delimiter(")content([not()delimiter(")> operator(+) ident(exclusion)operator(.)ident(join)operator(()string<delimiter(")content( and )delimiter(")>operator(\)) operator(+) string<delimiter(")content(\)])delimiter(")>operator(;)
- operator(})operator(,)
-- string<delimiter(')content(nth-child)delimiter(')>operator(:) keyword(function)operator(()ident(m)operator(\)) operator({)
-+ key<delimiter(')content(nth-child)delimiter(')>operator(:) keyword(function)operator(()ident(m)operator(\)) operator({)
- keyword(return) ident(Selector)operator(.)ident(xpath)operator(.)ident(pseudos)operator(.)ident(nth)operator(()string<delimiter(")content((count(./preceding-sibling::*\) + 1\) )delimiter(")>operator(,) ident(m)operator(\))operator(;)
- operator(})operator(,)
-- string<delimiter(')content(nth-last-child)delimiter(')>operator(:) keyword(function)operator(()ident(m)operator(\)) operator({)
-+ key<delimiter(')content(nth-last-child)delimiter(')>operator(:) keyword(function)operator(()ident(m)operator(\)) operator({)
- keyword(return) ident(Selector)operator(.)ident(xpath)operator(.)ident(pseudos)operator(.)ident(nth)operator(()string<delimiter(")content((count(./following-sibling::*\) + 1\) )delimiter(")>operator(,) ident(m)operator(\))operator(;)
- operator(})operator(,)
-- string<delimiter(')content(nth-of-type)delimiter(')>operator(:) keyword(function)operator(()ident(m)operator(\)) operator({)
-+ key<delimiter(')content(nth-of-type)delimiter(')>operator(:) keyword(function)operator(()ident(m)operator(\)) operator({)
- keyword(return) ident(Selector)operator(.)ident(xpath)operator(.)ident(pseudos)operator(.)ident(nth)operator(()string<delimiter(")content(position(\) )delimiter(")>operator(,) ident(m)operator(\))operator(;)
- operator(})operator(,)
-- string<delimiter(')content(nth-last-of-type)delimiter(')>operator(:) keyword(function)operator(()ident(m)operator(\)) operator({)
-+ key<delimiter(')content(nth-last-of-type)delimiter(')>operator(:) keyword(function)operator(()ident(m)operator(\)) operator({)
- keyword(return) ident(Selector)operator(.)ident(xpath)operator(.)ident(pseudos)operator(.)ident(nth)operator(()string<delimiter(")content((last(\) + 1 - position(\)\) )delimiter(")>operator(,) ident(m)operator(\))operator(;)
- operator(})operator(,)
-- string<delimiter(')content(first-of-type)delimiter(')>operator(:) keyword(function)operator(()ident(m)operator(\)) operator({)
-+ key<delimiter(')content(first-of-type)delimiter(')>operator(:) keyword(function)operator(()ident(m)operator(\)) operator({)
- ident(m)operator([)integer(6)operator(]) operator(=) string<delimiter(")content(1)delimiter(")>operator(;) keyword(return) ident(Selector)operator(.)ident(xpath)operator(.)ident(pseudos)operator([)string<delimiter(')content(nth-of-type)delimiter(')>operator(])operator(()ident(m)operator(\))operator(;)
- operator(})operator(,)
-- string<delimiter(')content(last-of-type)delimiter(')>operator(:) keyword(function)operator(()ident(m)operator(\)) operator({)
-+ key<delimiter(')content(last-of-type)delimiter(')>operator(:) keyword(function)operator(()ident(m)operator(\)) operator({)
- ident(m)operator([)integer(6)operator(]) operator(=) string<delimiter(")content(1)delimiter(")>operator(;) keyword(return) ident(Selector)operator(.)ident(xpath)operator(.)ident(pseudos)operator([)string<delimiter(')content(nth-last-of-type)delimiter(')>operator(])operator(()ident(m)operator(\))operator(;)
- operator(})operator(,)
-- string<delimiter(')content(only-of-type)delimiter(')>operator(:) keyword(function)operator(()ident(m)operator(\)) operator({)
-+ key<delimiter(')content(only-of-type)delimiter(')>operator(:) keyword(function)operator(()ident(m)operator(\)) operator({)
- keyword(var) ident(p) operator(=) ident(Selector)operator(.)ident(xpath)operator(.)ident(pseudos)operator(;) keyword(return) ident(p)operator([)string<delimiter(')content(first-of-type)delimiter(')>operator(])operator(()ident(m)operator(\)) operator(+) ident(p)operator([)string<delimiter(')content(last-of-type)delimiter(')>operator(])operator(()ident(m)operator(\))operator(;)
- operator(})operator(,)
- key(nth)operator(:) keyword(function)operator(()ident(fragment)operator(,) ident(m)operator(\)) operator({)
-@@ -6258,46 +6258,46 @@
- operator(})operator(,)
-
- key(pseudos)operator(:) operator({)
-- string<delimiter(')content(first-child)delimiter(')>operator(:) keyword(function)operator(()ident(nodes)operator(,) ident(value)operator(,) ident(root)operator(\)) operator({)
-+ key<delimiter(')content(first-child)delimiter(')>operator(:) keyword(function)operator(()ident(nodes)operator(,) ident(value)operator(,) ident(root)operator(\)) operator({)
- keyword(for) operator(()keyword(var) ident(i) operator(=) integer(0)operator(,) ident(results) operator(=) operator([)operator(])operator(,) ident(node)operator(;) ident(node) operator(=) ident(nodes)operator([)ident(i)operator(])operator(;) ident(i)operator(++)operator(\)) operator({)
- keyword(if) operator(()ident(Selector)operator(.)ident(handlers)operator(.)ident(previousElementSibling)operator(()ident(node)operator(\)\)) keyword(continue)operator(;)
- ident(results)operator(.)ident(push)operator(()ident(node)operator(\))operator(;)
- operator(})
- keyword(return) ident(results)operator(;)
- operator(})operator(,)
-- string<delimiter(')content(last-child)delimiter(')>operator(:) keyword(function)operator(()ident(nodes)operator(,) ident(value)operator(,) ident(root)operator(\)) operator({)
-+ key<delimiter(')content(last-child)delimiter(')>operator(:) keyword(function)operator(()ident(nodes)operator(,) ident(value)operator(,) ident(root)operator(\)) operator({)
- keyword(for) operator(()keyword(var) ident(i) operator(=) integer(0)operator(,) ident(results) operator(=) operator([)operator(])operator(,) ident(node)operator(;) ident(node) operator(=) ident(nodes)operator([)ident(i)operator(])operator(;) ident(i)operator(++)operator(\)) operator({)
- keyword(if) operator(()ident(Selector)operator(.)ident(handlers)operator(.)ident(nextElementSibling)operator(()ident(node)operator(\)\)) keyword(continue)operator(;)
- ident(results)operator(.)ident(push)operator(()ident(node)operator(\))operator(;)
- operator(})
- keyword(return) ident(results)operator(;)
- operator(})operator(,)
-- string<delimiter(')content(only-child)delimiter(')>operator(:) keyword(function)operator(()ident(nodes)operator(,) ident(value)operator(,) ident(root)operator(\)) operator({)
-+ key<delimiter(')content(only-child)delimiter(')>operator(:) keyword(function)operator(()ident(nodes)operator(,) ident(value)operator(,) ident(root)operator(\)) operator({)
- keyword(var) ident(h) operator(=) ident(Selector)operator(.)ident(handlers)operator(;)
- keyword(for) operator(()keyword(var) ident(i) operator(=) integer(0)operator(,) ident(results) operator(=) operator([)operator(])operator(,) ident(node)operator(;) ident(node) operator(=) ident(nodes)operator([)ident(i)operator(])operator(;) ident(i)operator(++)operator(\))
- keyword(if) operator((!)ident(h)operator(.)ident(previousElementSibling)operator(()ident(node)operator(\)) operator(&&) operator(!)ident(h)operator(.)ident(nextElementSibling)operator(()ident(node)operator(\)\))
- ident(results)operator(.)ident(push)operator(()ident(node)operator(\))operator(;)
- keyword(return) ident(results)operator(;)
- operator(})operator(,)
-- string<delimiter(')content(nth-child)delimiter(')>operator(:) keyword(function)operator(()ident(nodes)operator(,) ident(formula)operator(,) ident(root)operator(\)) operator({)
-+ key<delimiter(')content(nth-child)delimiter(')>operator(:) keyword(function)operator(()ident(nodes)operator(,) ident(formula)operator(,) ident(root)operator(\)) operator({)
- keyword(return) ident(Selector)operator(.)ident(pseudos)operator(.)ident(nth)operator(()ident(nodes)operator(,) ident(formula)operator(,) ident(root)operator(\))operator(;)
- operator(})operator(,)
-- string<delimiter(')content(nth-last-child)delimiter(')>operator(:) keyword(function)operator(()ident(nodes)operator(,) ident(formula)operator(,) ident(root)operator(\)) operator({)
-+ key<delimiter(')content(nth-last-child)delimiter(')>operator(:) keyword(function)operator(()ident(nodes)operator(,) ident(formula)operator(,) ident(root)operator(\)) operator({)
- keyword(return) ident(Selector)operator(.)ident(pseudos)operator(.)ident(nth)operator(()ident(nodes)operator(,) ident(formula)operator(,) ident(root)operator(,) keyword(true)operator(\))operator(;)
- operator(})operator(,)
-- string<delimiter(')content(nth-of-type)delimiter(')>operator(:) keyword(function)operator(()ident(nodes)operator(,) ident(formula)operator(,) ident(root)operator(\)) operator({)
-+ key<delimiter(')content(nth-of-type)delimiter(')>operator(:) keyword(function)operator(()ident(nodes)operator(,) ident(formula)operator(,) ident(root)operator(\)) operator({)
- keyword(return) ident(Selector)operator(.)ident(pseudos)operator(.)ident(nth)operator(()ident(nodes)operator(,) ident(formula)operator(,) ident(root)operator(,) keyword(false)operator(,) keyword(true)operator(\))operator(;)
- operator(})operator(,)
-- string<delimiter(')content(nth-last-of-type)delimiter(')>operator(:) keyword(function)operator(()ident(nodes)operator(,) ident(formula)operator(,) ident(root)operator(\)) operator({)
-+ key<delimiter(')content(nth-last-of-type)delimiter(')>operator(:) keyword(function)operator(()ident(nodes)operator(,) ident(formula)operator(,) ident(root)operator(\)) operator({)
- keyword(return) ident(Selector)operator(.)ident(pseudos)operator(.)ident(nth)operator(()ident(nodes)operator(,) ident(formula)operator(,) ident(root)operator(,) keyword(true)operator(,) keyword(true)operator(\))operator(;)
- operator(})operator(,)
-- string<delimiter(')content(first-of-type)delimiter(')>operator(:) keyword(function)operator(()ident(nodes)operator(,) ident(formula)operator(,) ident(root)operator(\)) operator({)
-+ key<delimiter(')content(first-of-type)delimiter(')>operator(:) keyword(function)operator(()ident(nodes)operator(,) ident(formula)operator(,) ident(root)operator(\)) operator({)
- keyword(return) ident(Selector)operator(.)ident(pseudos)operator(.)ident(nth)operator(()ident(nodes)operator(,) string<delimiter(")content(1)delimiter(")>operator(,) ident(root)operator(,) keyword(false)operator(,) keyword(true)operator(\))operator(;)
- operator(})operator(,)
-- string<delimiter(')content(last-of-type)delimiter(')>operator(:) keyword(function)operator(()ident(nodes)operator(,) ident(formula)operator(,) ident(root)operator(\)) operator({)
-+ key<delimiter(')content(last-of-type)delimiter(')>operator(:) keyword(function)operator(()ident(nodes)operator(,) ident(formula)operator(,) ident(root)operator(\)) operator({)
- keyword(return) ident(Selector)operator(.)ident(pseudos)operator(.)ident(nth)operator(()ident(nodes)operator(,) string<delimiter(")content(1)delimiter(")>operator(,) ident(root)operator(,) keyword(true)operator(,) keyword(true)operator(\))operator(;)
- operator(})operator(,)
-- string<delimiter(')content(only-of-type)delimiter(')>operator(:) keyword(function)operator(()ident(nodes)operator(,) ident(formula)operator(,) ident(root)operator(\)) operator({)
-+ key<delimiter(')content(only-of-type)delimiter(')>operator(:) keyword(function)operator(()ident(nodes)operator(,) ident(formula)operator(,) ident(root)operator(\)) operator({)
- keyword(var) ident(p) operator(=) ident(Selector)operator(.)ident(pseudos)operator(;)
- keyword(return) ident(p)operator([)string<delimiter(')content(last-of-type)delimiter(')>operator(])operator(()ident(p)operator([)string<delimiter(')content(first-of-type)delimiter(')>operator(])operator(()ident(nodes)operator(,) ident(formula)operator(,) ident(root)operator(\))operator(,) ident(formula)operator(,) ident(root)operator(\))operator(;)
- operator(})operator(,)
-@@ -6343,7 +6343,7 @@
- keyword(return) ident(results)operator(;)
- operator(})operator(,)
-
-- string<delimiter(')content(empty)delimiter(')>operator(:) keyword(function)operator(()ident(nodes)operator(,) ident(value)operator(,) ident(root)operator(\)) operator({)
-+ key<delimiter(')content(empty)delimiter(')>operator(:) keyword(function)operator(()ident(nodes)operator(,) ident(value)operator(,) ident(root)operator(\)) operator({)
- keyword(for) operator(()keyword(var) ident(i) operator(=) integer(0)operator(,) ident(results) operator(=) operator([)operator(])operator(,) ident(node)operator(;) ident(node) operator(=) ident(nodes)operator([)ident(i)operator(])operator(;) ident(i)operator(++)operator(\)) operator({)
- comment(// IE treats comments as element nodes)
- keyword(if) operator(()ident(node)operator(.)ident(tagName) operator(==) string<delimiter(')content(!)delimiter(')> operator(||) operator(()ident(node)operator(.)ident(firstChild) operator(&&) operator(!)ident(node)operator(.)ident(innerHTML)operator(.)ident(match)operator(()regexp<delimiter(/)content(^)char(\\s)content(*$)delimiter(/)>operator(\)\)\)) keyword(continue)operator(;)
-@@ -6352,7 +6352,7 @@
- keyword(return) ident(results)operator(;)
- operator(})operator(,)
-
-- string<delimiter(')content(not)delimiter(')>operator(:) keyword(function)operator(()ident(nodes)operator(,) ident(selector)operator(,) ident(root)operator(\)) operator({)
-+ key<delimiter(')content(not)delimiter(')>operator(:) keyword(function)operator(()ident(nodes)operator(,) ident(selector)operator(,) ident(root)operator(\)) operator({)
- keyword(var) ident(h) operator(=) ident(Selector)operator(.)ident(handlers)operator(,) ident(selectorType)operator(,) ident(m)operator(;)
- keyword(var) ident(exclusions) operator(=) keyword(new) ident(Selector)operator(()ident(selector)operator(\))operator(.)ident(findElements)operator(()ident(root)operator(\))operator(;)
- ident(h)operator(.)ident(mark)operator(()ident(exclusions)operator(\))operator(;)
-@@ -6362,19 +6362,19 @@
- keyword(return) ident(results)operator(;)
- operator(})operator(,)
-
-- string<delimiter(')content(enabled)delimiter(')>operator(:) keyword(function)operator(()ident(nodes)operator(,) ident(value)operator(,) ident(root)operator(\)) operator({)
-+ key<delimiter(')content(enabled)delimiter(')>operator(:) keyword(function)operator(()ident(nodes)operator(,) ident(value)operator(,) ident(root)operator(\)) operator({)
- keyword(for) operator(()keyword(var) ident(i) operator(=) integer(0)operator(,) ident(results) operator(=) operator([)operator(])operator(,) ident(node)operator(;) ident(node) operator(=) ident(nodes)operator([)ident(i)operator(])operator(;) ident(i)operator(++)operator(\))
- keyword(if) operator((!)ident(node)operator(.)ident(disabled)operator(\)) ident(results)operator(.)ident(push)operator(()ident(node)operator(\))operator(;)
- keyword(return) ident(results)operator(;)
- operator(})operator(,)
-
-- string<delimiter(')content(disabled)delimiter(')>operator(:) keyword(function)operator(()ident(nodes)operator(,) ident(value)operator(,) ident(root)operator(\)) operator({)
-+ key<delimiter(')content(disabled)delimiter(')>operator(:) keyword(function)operator(()ident(nodes)operator(,) ident(value)operator(,) ident(root)operator(\)) operator({)
- keyword(for) operator(()keyword(var) ident(i) operator(=) integer(0)operator(,) ident(results) operator(=) operator([)operator(])operator(,) ident(node)operator(;) ident(node) operator(=) ident(nodes)operator([)ident(i)operator(])operator(;) ident(i)operator(++)operator(\))
- keyword(if) operator(()ident(node)operator(.)ident(disabled)operator(\)) ident(results)operator(.)ident(push)operator(()ident(node)operator(\))operator(;)
- keyword(return) ident(results)operator(;)
- operator(})operator(,)
-
-- string<delimiter(')content(checked)delimiter(')>operator(:) keyword(function)operator(()ident(nodes)operator(,) ident(value)operator(,) ident(root)operator(\)) operator({)
-+ key<delimiter(')content(checked)delimiter(')>operator(:) keyword(function)operator(()ident(nodes)operator(,) ident(value)operator(,) ident(root)operator(\)) operator({)
- keyword(for) operator(()keyword(var) ident(i) operator(=) integer(0)operator(,) ident(results) operator(=) operator([)operator(])operator(,) ident(node)operator(;) ident(node) operator(=) ident(nodes)operator([)ident(i)operator(])operator(;) ident(i)operator(++)operator(\))
- keyword(if) operator(()ident(node)operator(.)ident(checked)operator(\)) ident(results)operator(.)ident(push)operator(()ident(node)operator(\))operator(;)
- keyword(return) ident(results)operator(;)
-@@ -6382,13 +6382,13 @@
- operator(})operator(,)
-
- key(operators)operator(:) operator({)
-- string<delimiter(')content(=)delimiter(')>operator(:) keyword(function)operator(()ident(nv)operator(,) ident(v)operator(\)) operator({) keyword(return) ident(nv) operator(==) ident(v)operator(;) operator(})operator(,)
-- string<delimiter(')content(!=)delimiter(')>operator(:) keyword(function)operator(()ident(nv)operator(,) ident(v)operator(\)) operator({) keyword(return) ident(nv) operator(!=) ident(v)operator(;) operator(})operator(,)
-- string<delimiter(')content(^=)delimiter(')>operator(:) keyword(function)operator(()ident(nv)operator(,) ident(v)operator(\)) operator({) keyword(return) ident(nv)operator(.)ident(startsWith)operator(()ident(v)operator(\))operator(;) operator(})operator(,)
-- string<delimiter(')content($=)delimiter(')>operator(:) keyword(function)operator(()ident(nv)operator(,) ident(v)operator(\)) operator({) keyword(return) ident(nv)operator(.)ident(endsWith)operator(()ident(v)operator(\))operator(;) operator(})operator(,)
-- string<delimiter(')content(*=)delimiter(')>operator(:) keyword(function)operator(()ident(nv)operator(,) ident(v)operator(\)) operator({) keyword(return) ident(nv)operator(.)ident(include)operator(()ident(v)operator(\))operator(;) operator(})operator(,)
-- string<delimiter(')content(~=)delimiter(')>operator(:) keyword(function)operator(()ident(nv)operator(,) ident(v)operator(\)) operator({) keyword(return) operator(()string<delimiter(')content( )delimiter(')> operator(+) ident(nv) operator(+) string<delimiter(')content( )delimiter(')>operator(\))operator(.)ident(include)operator(()string<delimiter(')content( )delimiter(')> operator(+) ident(v) operator(+) string<delimiter(')content( )delimiter(')>operator(\))operator(;) operator(})operator(,)
-- string<delimiter(')content(|=)delimiter(')>operator(:) keyword(function)operator(()ident(nv)operator(,) ident(v)operator(\)) operator({) keyword(return) operator(()string<delimiter(')content(-)delimiter(')> operator(+) ident(nv)operator(.)ident(toUpperCase)operator(()operator(\)) operator(+) string<delimiter(')content(-)delimiter(')>operator(\))operator(.)ident(include)operator(()string<delimiter(')content(-)delimiter(')> operator(+) ident(v)operator(.)ident(toUpperCase)operator(()operator(\)) operator(+) string<delimiter(')content(-)delimiter(')>operator(\))operator(;) operator(})
-+ key<delimiter(')content(=)delimiter(')>operator(:) keyword(function)operator(()ident(nv)operator(,) ident(v)operator(\)) operator({) keyword(return) ident(nv) operator(==) ident(v)operator(;) operator(})operator(,)
-+ key<delimiter(')content(!=)delimiter(')>operator(:) keyword(function)operator(()ident(nv)operator(,) ident(v)operator(\)) operator({) keyword(return) ident(nv) operator(!=) ident(v)operator(;) operator(})operator(,)
-+ key<delimiter(')content(^=)delimiter(')>operator(:) keyword(function)operator(()ident(nv)operator(,) ident(v)operator(\)) operator({) keyword(return) ident(nv)operator(.)ident(startsWith)operator(()ident(v)operator(\))operator(;) operator(})operator(,)
-+ key<delimiter(')content($=)delimiter(')>operator(:) keyword(function)operator(()ident(nv)operator(,) ident(v)operator(\)) operator({) keyword(return) ident(nv)operator(.)ident(endsWith)operator(()ident(v)operator(\))operator(;) operator(})operator(,)
-+ key<delimiter(')content(*=)delimiter(')>operator(:) keyword(function)operator(()ident(nv)operator(,) ident(v)operator(\)) operator({) keyword(return) ident(nv)operator(.)ident(include)operator(()ident(v)operator(\))operator(;) operator(})operator(,)
-+ key<delimiter(')content(~=)delimiter(')>operator(:) keyword(function)operator(()ident(nv)operator(,) ident(v)operator(\)) operator({) keyword(return) operator(()string<delimiter(')content( )delimiter(')> operator(+) ident(nv) operator(+) string<delimiter(')content( )delimiter(')>operator(\))operator(.)ident(include)operator(()string<delimiter(')content( )delimiter(')> operator(+) ident(v) operator(+) string<delimiter(')content( )delimiter(')>operator(\))operator(;) operator(})operator(,)
-+ key<delimiter(')content(|=)delimiter(')>operator(:) keyword(function)operator(()ident(nv)operator(,) ident(v)operator(\)) operator({) keyword(return) operator(()string<delimiter(')content(-)delimiter(')> operator(+) ident(nv)operator(.)ident(toUpperCase)operator(()operator(\)) operator(+) string<delimiter(')content(-)delimiter(')>operator(\))operator(.)ident(include)operator(()string<delimiter(')content(-)delimiter(')> operator(+) ident(v)operator(.)ident(toUpperCase)operator(()operator(\)) operator(+) string<delimiter(')content(-)delimiter(')>operator(\))operator(;) operator(})
- operator(})operator(,)
-
- key(matchElements)operator(:) keyword(function)operator(()ident(elements)operator(,) ident(expression)operator(\)) operator({)
-Index: Rakefile
-===================================================================
---- Rakefile (revision 308)
-+++ Rakefile (working copy)
-@@ -44,10 +44,12 @@
- task 'jruby' do
- RUBY.replace 'jruby'
- end
-+task :j => :jruby
-
- task 'jruby19' do
- RUBY.replace 'jruby --1.9'
- end
-+task :j19 => :jruby19
-
- task 'rubinius' do
- RUBY.replace 'rbx'
-Index: lib/coderay/helpers/plugin.rb
-===================================================================
---- lib/coderay/helpers/plugin.rb (revision 308)
-+++ lib/coderay/helpers/plugin.rb (working copy)
-@@ -2,8 +2,6 @@
-
- # = PluginHost
- #
--# $Id$
--#
- # A simple subclass plugin system.
- #
- # Example:
-Index: lib/coderay/duo.rb
-===================================================================
---- lib/coderay/duo.rb (revision 308)
-+++ lib/coderay/duo.rb (working copy)
-@@ -2,8 +2,6 @@
-
- # = Duo
- #
-- # $Id: scanner.rb 123 2006-03-21 14:46:34Z murphy $
-- #
- # A Duo is a convenient way to use CodeRay. You just create a Duo,
- # giving it a lang (language of the input code) and a format (desired
- # output format), and call Duo#highlight with the code.
-Index: lib/coderay/scanner.rb
-===================================================================
---- lib/coderay/scanner.rb (revision 308)
-+++ lib/coderay/scanner.rb (working copy)
-@@ -4,8 +4,6 @@
-
- # = Scanners
- #
-- # $Id$
-- #
- # This module holds the Scanner class and its subclasses.
- # For example, the Ruby scanner is named CodeRay::Scanners::Ruby
- # can be found in coderay/scanners/ruby.
-Index: lib/coderay/scanners/java.rb
-===================================================================
---- lib/coderay/scanners/java.rb (revision 308)
-+++ lib/coderay/scanners/java.rb (working copy)
-@@ -76,7 +76,7 @@
- class_name_follows = false
- else
- import_clause = true if match == 'import'
-- class_name_follows = true if match == 'class'
-+ class_name_follows = true if match == 'class' || match == 'interface'
- end
-
- elsif scan(/ \.(?!\d) | [,?:(\[)\]}] | -- | \+\+ | && | \|\| | \*\*=? | [-+*\/%^~&|<>=!]=? | <<<?=? | >>>?=? /x)
-Index: lib/coderay/scanners/rhtml.rb
-===================================================================
---- lib/coderay/scanners/rhtml.rb (revision 308)
-+++ lib/coderay/scanners/rhtml.rb (working copy)
-@@ -5,8 +5,6 @@
- load :ruby
-
- # RHTML Scanner
-- #
-- # $Id$
- class RHTML < Scanner
-
- include Streamable
-Index: lib/coderay/scanners/xml.rb
-===================================================================
---- lib/coderay/scanners/xml.rb (revision 308)
-+++ lib/coderay/scanners/xml.rb (working copy)
-@@ -5,8 +5,6 @@
-
- # XML Scanner
- #
-- # $Id$
-- #
- # Currently this is the same scanner as Scanners::HTML.
- class XML < HTML
-
-Index: lib/coderay/scanners/java_script.rb
-===================================================================
---- lib/coderay/scanners/java_script.rb (revision 308)
-+++ lib/coderay/scanners/java_script.rb (working copy)
-@@ -42,6 +42,10 @@
- '"' => /[^\\"]+/,
- '/' => /[^\\\/]+/,
- }
-+ KEY_CHECK_PATTERN = {
-+ "'" => / [^\\']* (?: \\.? [^\\']* )* '? \s* : /x,
-+ '"' => / [^\\"]* (?: \\.? [^\\"]* )* "? \s* : /x,
-+ }
-
- def scan_tokens tokens, options
-
-@@ -103,8 +107,12 @@
- key_expected = false
-
- elsif match = scan(/["']/)
-- tokens << [:open, :string]
-- state = :string
-+ if key_expected && check(KEY_CHECK_PATTERN[match])
-+ state = :key
-+ else
-+ state = :string
-+ end
-+ tokens << [:open, state]
- string_delimiter = match
- kind = :delimiter
-
-@@ -125,7 +133,7 @@
-
- end
-
-- when :string, :regexp
-+ when :string, :regexp, :key
- if scan(STRING_CONTENT_PATTERN[string_delimiter])
- kind = :content
- elsif match = scan(/["'\/]/)
-@@ -139,7 +147,7 @@
- key_expected = value_expected = false
- state = :initial
- next
-- elsif state == :string && (match = scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox))
-+ elsif state != :regexp && (match = scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox))
- if string_delimiter == "'" && !(match == "\\\\" || match == "\\'")
- kind = :content
- else
-@@ -155,20 +163,20 @@
- key_expected = value_expected = false
- state = :initial
- else
-- raise_inspect "else case \" reached; %p not handled." % peek(1), tokens
-+ raise_inspect "else case \" reached; %p not handled." % peek(1), tokens, state
- end
-
- else
-- raise_inspect 'Unknown state', tokens
-+ raise_inspect 'Unknown state', tokens, state
-
- end
-
- match ||= matched
- if $DEBUG and not kind
- raise_inspect 'Error token %p in line %d' %
-- [[match, kind], line], tokens
-+ [[match, kind], line], tokens, state
- end
-- raise_inspect 'Empty token', tokens unless match
-+ raise_inspect 'Empty token', tokens, state unless match
-
- tokens << [match, kind]
-
-Index: lib/coderay/scanners/nitro_xhtml.rb
-===================================================================
---- lib/coderay/scanners/nitro_xhtml.rb (revision 308)
-+++ lib/coderay/scanners/nitro_xhtml.rb (working copy)
-@@ -5,8 +5,6 @@
- load :ruby
-
- # Nitro XHTML Scanner
-- #
-- # $Id$
- class NitroXHTML < Scanner
-
- include Streamable
-Index: lib/coderay/for_redcloth.rb
-===================================================================
---- lib/coderay/for_redcloth.rb (revision 308)
-+++ lib/coderay/for_redcloth.rb (working copy)
-@@ -48,6 +48,7 @@
- opts[:lang] ? '' : "<pre#{pba(opts)}>"
- end
- def bc_close(opts) # :nodoc:
-+ opts = @in_bc
- @in_bc = nil
- opts[:lang] ? '' : "</pre>\n"
- end
-Index: lib/README
-===================================================================
---- lib/README (revision 308)
-+++ lib/README (working copy)
-@@ -87,6 +87,7 @@
- * Jonathan Younger for pointing out the licence confusion caused by wrong LICENSE file.
- * Jeremy Hinegardner for finding the shebang-on-empty-file bug in FileType.
- * Charles Oliver Nutter and Yehuda Katz for helping me benchmark CodeRay on JRuby.
-+* Andreas Neuhaus for pointing out a markup bug in coderay/for_redcloth.
- * The folks at redmine.org - thank you for using and fixing CodeRay!
- * matz and all Ruby gods and gurus
- * The inventors of: the computer, the internet, the true color display, HTML &
-Index: rake_tasks/test.rake
-===================================================================
---- rake_tasks/test.rake (revision 308)
-+++ rake_tasks/test.rake (working copy)
-@@ -9,6 +9,22 @@
- ruby "./test/functional/suite.rb"
- end
-
-+ namespace :functional do
-+ desc 'run all functional tests on all supported Ruby platforms'
-+ task :all do
-+ $stdout.sync = true
-+ for task in %w(test:functional 19 test:functional jruby test:functional ee test:functional)
-+ if task == 'test:functional'
-+ puts "\n\nTesting with #{RUBY}..."
-+ Rake::Task['test:functional'].reenable
-+ Rake::Task['test:functional'].invoke
-+ else
-+ Rake::Task[task].invoke
-+ end
-+ end
-+ end
-+ end
-+
- desc 'run all scanner tests'
- task :scanners do
- ruby "./test/scanners/suite.rb"
-Index: rake_tasks/documentation.rake
-===================================================================
---- rake_tasks/documentation.rake (revision 308)
-+++ rake_tasks/documentation.rake (working copy)
-@@ -7,7 +7,7 @@
- rd.main = 'lib/README'
- rd.title = "CodeRay Documentation"
- rd.options << '--line-numbers' << '--inline-source' << '--tab-width' << '2'
-- # rd.options << '--format' << ENV.fetch('format', 'html_coderay')
-+ rd.options << '--fmt' << ENV.fetch('format', 'html_coderay')
- rd.options << '--all'
-
- rd.template = ENV.fetch('template', CODERAY_TEMPLATE)
diff --git a/etc/0.8.3-vs-0.8.4.diff b/etc/0.8.3-vs-0.8.4.diff
deleted file mode 100644
index e483d37..0000000
--- a/etc/0.8.3-vs-0.8.4.diff
+++ /dev/null
@@ -1,73 +0,0 @@
-Index: test/scanners/ruby/ruby19.expected.raydebug
-===================================================================
---- test/scanners/ruby/ruby19.expected.raydebug (.../0.8.3) (revision 0)
-+++ test/scanners/ruby/ruby19.expected.raydebug (.../0.8.4) (revision 411)
-@@ -0,0 +1,4 @@
-+ident(block)operator(.)ident(()operator(*)ident(arguments)operator(\)) comment(# bovi's example)
-+
-+reserved(def) operator(()ident(foo)operator(\))operator(.)ident(bar)
-+reserved(end)
-\ No newline at end of file
-Index: test/scanners/ruby/ruby19.in.rb
-===================================================================
---- test/scanners/ruby/ruby19.in.rb (.../0.8.3) (revision 0)
-+++ test/scanners/ruby/ruby19.in.rb (.../0.8.4) (revision 411)
-@@ -0,0 +1,4 @@
-+block.(*arguments) # bovi's example
-+
-+def (foo).bar
-+end
-\ No newline at end of file
-Index: lib/coderay/for_redcloth.rb
-===================================================================
---- lib/coderay/for_redcloth.rb (.../0.8.3) (revision 411)
-+++ lib/coderay/for_redcloth.rb (.../0.8.4) (revision 411)
-@@ -15,7 +15,9 @@
- def self.install
- gem 'RedCloth', '>= 4.0.3' rescue nil
- require 'redcloth'
-- raise 'CodeRay.for_redcloth needs RedCloth 4.0.3 or later.' unless RedCloth::VERSION.to_s >= '4.0.3'
-+ unless RedCloth::VERSION.to_s >= '4.0.3'
-+ raise 'CodeRay.for_redcloth needs RedCloth version 4.0.3 or later.'
-+ end
- RedCloth::TextileDoc.send :include, ForRedCloth::TextileDoc
- RedCloth::Formatters::HTML.module_eval do
- def unescape(html)
-@@ -30,6 +32,11 @@
- undef_method :code, :bc_open, :bc_close, :escape_pre
- def code(opts) # :nodoc:
- opts[:block] = true
-+ if !opts[:lang] && RedCloth::VERSION.to_s >= '4.2.0'
-+ # simulating pre-4.2 behavior
-+ opts[:text].sub!(/\A\[(\w+)\]/, '')
-+ opts[:lang] = $1
-+ end
- if opts[:lang] && !filter_coderay
- require 'coderay'
- @in_bc ||= nil
-Index: lib/coderay/scanners/ruby.rb
-===================================================================
---- lib/coderay/scanners/ruby.rb (.../0.8.3) (revision 411)
-+++ lib/coderay/scanners/ruby.rb (.../0.8.4) (revision 411)
-@@ -175,7 +175,7 @@
- ## experimental!
- value_expected = :set if check(/#{patterns::VALUE_FOLLOWS}/o)
-
-- elsif last_token_dot and match = scan(/#{patterns::METHOD_NAME_OPERATOR}/o)
-+ elsif last_token_dot and match = scan(/#{patterns::METHOD_NAME_OPERATOR}|\(/o)
- kind = :ident
- value_expected = :set if check(/#{patterns::VALUE_FOLLOWS}/o)
-
-Index: lib/README
-===================================================================
---- lib/README (.../0.8.3) (revision 411)
-+++ lib/README (.../0.8.4) (revision 411)
-@@ -18,7 +18,7 @@
- * is what everybody should have on their website
- * solves all your problems and makes the girls run after you
-
--Version: 0.8.3
-+Version: 0.8.4
- Author:: murphy (Kornelius Kalnbach)
- Contact:: murphy rubychan de
- Website:: coderay.rubychan.de[http://coderay.rubychan.de]