annotate vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/text-base/debug.rb.svn-base @ 36:de76cd3e8c8e cc-branches

* Probably abortive experiments in extracting the branch from Hg
author Chris Cannam <chris.cannam@soundsoftware.ac.uk>
date Wed, 20 Oct 2010 10:07:29 +0100
parents 513646585e45
children
rev   line source
Chris@0 1 module CodeRay
Chris@0 2 module Scanners
Chris@0 3
Chris@0 4 # = Debug Scanner
Chris@0 5 class Debug < Scanner
Chris@0 6
Chris@0 7 include Streamable
Chris@0 8 register_for :debug
Chris@0 9 file_extension 'raydebug'
Chris@0 10 title 'CodeRay Token Dump'
Chris@0 11
Chris@0 12 protected
Chris@0 13 def scan_tokens tokens, options
Chris@0 14
Chris@0 15 opened_tokens = []
Chris@0 16
Chris@0 17 until eos?
Chris@0 18
Chris@0 19 kind = nil
Chris@0 20 match = nil
Chris@0 21
Chris@0 22 if scan(/\s+/)
Chris@0 23 tokens << [matched, :space]
Chris@0 24 next
Chris@0 25
Chris@0 26 elsif scan(/ (\w+) \( ( [^\)\\]* ( \\. [^\)\\]* )* ) \) /x)
Chris@0 27 kind = self[1].to_sym
Chris@0 28 match = self[2].gsub(/\\(.)/, '\1')
Chris@0 29
Chris@0 30 elsif scan(/ (\w+) < /x)
Chris@0 31 kind = self[1].to_sym
Chris@0 32 opened_tokens << kind
Chris@0 33 match = :open
Chris@0 34
Chris@0 35 elsif !opened_tokens.empty? && scan(/ > /x)
Chris@0 36 kind = opened_tokens.pop || :error
Chris@0 37 match = :close
Chris@0 38
Chris@0 39 else
Chris@0 40 kind = :error
Chris@0 41 getch
Chris@0 42
Chris@0 43 end
Chris@0 44
Chris@0 45 match ||= matched
Chris@0 46 if $CODERAY_DEBUG and not kind
Chris@0 47 raise_inspect 'Error token %p in line %d' %
Chris@0 48 [[match, kind], line], tokens
Chris@0 49 end
Chris@0 50 raise_inspect 'Empty token', tokens unless match
Chris@0 51
Chris@0 52 tokens << [match, kind]
Chris@0 53
Chris@0 54 end
Chris@0 55
Chris@0 56 tokens
Chris@0 57 end
Chris@0 58
Chris@0 59 end
Chris@0 60
Chris@0 61 end
Chris@0 62 end