diff options
author | Kornelius Kalnbach <murphy@rubychan.de> | 2013-07-21 20:14:21 +0200 |
---|---|---|
committer | Kornelius Kalnbach <murphy@rubychan.de> | 2013-07-21 20:14:21 +0200 |
commit | 5d6bee7f5caced1383e6aac427fb356a4788794b (patch) | |
tree | 1bfa3fb3f2ed69bcdef635eea1b2d5fa84b5aaa2 /lib/coderay/scanners/debug.rb | |
parent | 2ab42c7b5e674453fac0320fe0c4a40daf6197e1 (diff) | |
download | coderay-5d6bee7f5caced1383e6aac427fb356a4788794b.tar.gz |
tweak Debug scanners again, introduce :unknown token kind
Diffstat (limited to 'lib/coderay/scanners/debug.rb')
-rw-r--r-- | lib/coderay/scanners/debug.rb | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/lib/coderay/scanners/debug.rb b/lib/coderay/scanners/debug.rb index ac12c16..83ede9a 100644 --- a/lib/coderay/scanners/debug.rb +++ b/lib/coderay/scanners/debug.rb @@ -5,7 +5,7 @@ module Scanners # = Debug Scanner # - # Interprets the output of the Encoders::Debug encoder. + # Interprets the output of the Encoders::Debug encoder (basically the inverse function). class Debug < Scanner register_for :debug @@ -31,21 +31,24 @@ module Scanners if @known_token_kinds.include? self[1] encoder.text_token self[2].gsub(/\\(.)/m, '\1'), self[1].to_sym else - encoder.text_token matched, :error + encoder.text_token matched, :unknown end elsif match = scan(/ (\w+) ([<\[]) /x) if @known_token_kinds.include? self[1] 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 + else + kind = :unknown + end + + 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) |