From 70690604e7ea6fd6b89c256a52d65a308ad0fe77 Mon Sep 17 00:00:00 2001 From: murphy Date: Tue, 17 Oct 2006 09:44:47 +0000 Subject: Moved demos to sample/. --- sample/demo_scanner.rb | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 sample/demo_scanner.rb (limited to 'sample/demo_scanner.rb') diff --git a/sample/demo_scanner.rb b/sample/demo_scanner.rb new file mode 100644 index 0000000..6a0245e --- /dev/null +++ b/sample/demo_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(', ') -- cgit v1.2.1