1
0
Fork 0
mirror of https://github.com/ruby-opencv/ruby-opencv synced 2023-03-27 23:22:12 -04:00
ruby-opencv/yard_extension.rb
2016-04-03 05:19:48 +09:00

29 lines
1.1 KiB
Ruby

require 'yard'
# yardoc -e yard_extension.rb ext/opencv/*.cpp
module YARD
module Parser
module C
class CParser < Base
alias_method :initialize_original, :initialize
def initialize(source, file = '(stdin)')
source = source.lines.map { |line|
line = line =~ /\A\s*(?:namespace|extern)\s*/ ? "\n" : line
line.gsub!(/RUBY_METHOD_FUNC\s*\((?:[0-9a-zA-Z_:]+::)([0-9a-zA-Z_]+)\)/) { "RUBY_METHOD_FUNC(#{$1})" }
line
}.join
initialize_original(source, file)
end
end
end
end
end
# YARD::Parser::SourceParser.register_parser_type(:c, YARD::Parser::C::CParser, ['c', 'cc']) # Remove .cpp
# YARD::Parser::SourceParser.register_parser_type(:cpp, YARD::Parser::Cpp::CppParser, ['cpp'])
# YARD::Handlers::Processor.register_handler_namespace(:cpp, YARD::Handlers::Cpp)
# YARD::Handlers::Processor.register_handler_namespace(:cpp, YARD::Handlers::C)
YARD::Parser::SourceParser.parser_type = :c
YARD::Tags::Library.define_tag('OpenCV Function', :opencv_func, :with_types_and_name)