diff options
author | Kornelius Kalnbach <murphy@rubychan.de> | 2013-06-23 16:06:02 +0200 |
---|---|---|
committer | Kornelius Kalnbach <murphy@rubychan.de> | 2013-06-23 16:06:02 +0200 |
commit | 0013b649f714f23eef0859921fa7804ca7caef76 (patch) | |
tree | 7c278ee7c420729b4738fe2a195e529ffd2bb6da /test/samples/scanner.rb | |
parent | addcbd446066d0da1627112814e3ce1b8d404da0 (diff) | |
parent | 64ca2ae8ad5130bdcf652aa7aa08298de00f20f4 (diff) | |
download | coderay-0013b649f714f23eef0859921fa7804ca7caef76.tar.gz |
Merge branch 'master' into go-scanner
Conflicts:
lib/coderay/helpers/file_type.rb
Diffstat (limited to 'test/samples/scanner.rb')
-rw-r--r-- | test/samples/scanner.rb | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/test/samples/scanner.rb b/test/samples/scanner.rb new file mode 100644 index 0000000..6a0245e --- /dev/null +++ b/test/samples/scanner.rb @@ -0,0 +1,36 @@ +require 'coderay'
+
+c_code = "if (*p == '{') nest++;"
+puts 'C Code: ' + c_code
+puts
+
+c_scanner = CodeRay::Scanners[:c].new c_code
+
+puts '> print only operators:'
+for text, kind in c_scanner
+ print text if kind == :operator
+end
+puts
+puts '-' * 30
+puts
+
+ruby_code = %q!ruby_code(:can, BE, %r[q[ui]te #{ /comple/x },] => $-s, &?\xee)!
+puts 'Ruby Code: ' + ruby_code
+puts
+
+ruby_scanner = CodeRay::Scanners[:ruby].new ruby_code
+
+puts '> has a string?'
+puts ruby_scanner.
+ any? { |text, kind| kind == :string }
+puts
+
+puts '> number of regexps?'
+puts ruby_scanner.
+ select { |token| token == [:open, :regexp] }.size
+puts
+
+puts '> has a string?'
+puts ruby_scanner.
+ reject { |text, kind| not text.is_a? String }.
+ map { |text, kind| %("#{text}" (#{kind})) }.join(', ')
|