1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
# frozen_string_literal: true
desc 'Compile pattern to Ruby code for debugging purposes'
task compile: :generate do
if (pattern = ARGV[1])
require_relative '../lib/rubocop/ast'
puts ::RuboCop::AST::NodePattern.new(pattern).compile_as_lambda
else
puts 'Usage:'
puts " rake compile '(send nil? :example...)'"
end
exit(0)
end
desc 'Parse pattern to AST for debugging purposes'
task parse: :generate do
if (pattern = ARGV[1])
require_relative '../lib/rubocop/ast'
puts ::RuboCop::AST::NodePattern::Parser.new.parse(pattern)
else
puts 'Usage:'
puts " rake parse '(send nil? :example...)'"
end
exit(0)
end
desc 'Tokens of pattern for debugging purposes'
task tokenize: :generate do
if (pattern = ARGV[1])
require_relative '../lib/rubocop/ast'
puts ::RuboCop::AST::NodePattern::Parser::WithMeta.new.tokenize(pattern).last
else
puts 'Usage:'
puts " rake parse '(send nil? :example...)'"
end
exit(0)
end
desc 'Test pattern against ruby code'
task test_pattern: :generate do
if (pattern = ARGV[1]) && (ruby = ARGV[2])
require_relative '../lib/rubocop/ast'
colorizer = ::RuboCop::AST::NodePattern::Compiler::Debug::Colorizer.new(pattern)
puts colorizer.test(ruby).colorize
else
puts 'Usage:'
puts " rake test-pattern '(send nil? :example...)' 'example(42)'"
end
exit(0)
end
|