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-05-02 03:31:30 +09:00

29 lines
1 KiB
Ruby

# -*- mode: ruby; coding: utf-8 -*-
require 'yard'
# yardoc -e yard_extension.rb ext/opencv/*.cpp
module YARD
module Parser
module Cpp
class CppParser < YARD::Parser::C::CParser
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
super(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 = :cpp
YARD::Tags::Library.define_tag('OpenCV Function', :opencv_func, :with_types_and_name)