Mercurial > hg > soundsoftware-site
view vendor/plugins/coderay-0.9.2/lib/coderay/scanners/debug.rb @ 100:1412841d48a3 cannam
* Projects page: If I'm logged in but have no projects, use single All Projects heading
* Projects page: Rename "Other Projects" to "Everyone Else's Projects"
* Projects page: Remove stars from my project links; remove key explaining star
* Projects page: Reorder top-right nav links to isolate the "+ New Project" icon
author | Chris Cannam |
---|---|
date | Thu, 16 Dec 2010 16:29:06 +0000 |
parents | 513646585e45 |
children |
line wrap: on
line source
module CodeRay module Scanners # = Debug Scanner class Debug < Scanner include Streamable register_for :debug file_extension 'raydebug' title 'CodeRay Token Dump' protected def scan_tokens tokens, options opened_tokens = [] until eos? kind = nil match = nil if scan(/\s+/) tokens << [matched, :space] next elsif scan(/ (\w+) \( ( [^\)\\]* ( \\. [^\)\\]* )* ) \) /x) kind = self[1].to_sym match = self[2].gsub(/\\(.)/, '\1') elsif scan(/ (\w+) < /x) kind = self[1].to_sym opened_tokens << kind match = :open elsif !opened_tokens.empty? && scan(/ > /x) kind = opened_tokens.pop || :error match = :close else kind = :error getch end match ||= matched if $CODERAY_DEBUG and not kind raise_inspect 'Error token %p in line %d' % [[match, kind], line], tokens end raise_inspect 'Empty token', tokens unless match tokens << [match, kind] end tokens end end end end