diff options
Diffstat (limited to 'lib/coderay/scanners/c2.rb')
-rw-r--r-- | lib/coderay/scanners/c2.rb | 42 |
1 files changed, 13 insertions, 29 deletions
diff --git a/lib/coderay/scanners/c2.rb b/lib/coderay/scanners/c2.rb index 7ae382a..3103e54 100644 --- a/lib/coderay/scanners/c2.rb +++ b/lib/coderay/scanners/c2.rb @@ -87,40 +87,24 @@ module Scanners on %r//, pop_state # TODO: add otherwise method for this end - scan_tokens_code = <<-"RUBY" - def scan_tokens encoder, options#{ def_line = __LINE__; nil } - state = @state - label_expected = true - case_expected = false - label_expected_before_preproc_line = nil - in_preproc_line = false - - states = [state] - - until eos? - # last_pos = pos - case state -#{ @code.chomp.gsub(/^/, ' ') } - else - raise_inspect 'Unknown state: %p' % [state], encoder - end - - # raise_inspect 'nothing was consumed! states = %p' % [states], encoder if pos == last_pos - end + protected + + def setup + super - if state == :string + @label_expected = true + @case_expected = false + @label_expected_before_preproc_line = nil + @in_preproc_line = false + end + + def close_groups encoder, states + if states.last == :string encoder.end_group :string end - - encoder end - RUBY - if ENV['PUTS'] - puts CodeRay.scan(scan_tokens_code, :ruby).terminal - puts "callbacks: #{callbacks.size}" - end - class_eval scan_tokens_code, __FILE__, def_line end + end end |