summaryrefslogtreecommitdiff
path: root/lib/coderay/simple_scanner.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/coderay/simple_scanner.rb')
-rw-r--r--lib/coderay/simple_scanner.rb40
1 files changed, 40 insertions, 0 deletions
diff --git a/lib/coderay/simple_scanner.rb b/lib/coderay/simple_scanner.rb
new file mode 100644
index 0000000..6873f88
--- /dev/null
+++ b/lib/coderay/simple_scanner.rb
@@ -0,0 +1,40 @@
+require 'set'
+
+module CodeRay
+ module Scanners
+ class SimpleScanner < Scanner
+ extend SimpleScannerDSL
+
+ class << self
+ def define_scan_tokens!
+ if ENV['PUTS']
+ puts CodeRay.scan(scan_tokens_code, :ruby).terminal
+ puts "callbacks: #{callbacks.size}"
+ end
+
+ class_eval <<-RUBY
+def scan_tokens encoder, options
+#{ scan_tokens_code.chomp.gsub(/^/, ' ' * 2) }
+end
+ RUBY
+ end
+ end
+
+ def scan_tokens tokens, options
+ self.class.define_scan_tokens!
+
+ scan_tokens tokens, options
+ end
+
+ protected
+
+ def setup
+ @state = :initial
+ end
+
+ def close_groups encoder, states
+ # TODO
+ end
+ end
+ end
+end \ No newline at end of file