summaryrefslogtreecommitdiffhomepage
path: root/lib/yard/mruby/handlers/c
diff options
context:
space:
mode:
authorSeba Gamboa <[email protected]>2015-09-28 18:29:41 -0300
committerSeba Gamboa <[email protected]>2015-09-28 18:29:41 -0300
commit73326c64a5e720f7d31b1e52ef9fda341895e800 (patch)
tree065b8ed13fa31c8a910433fe41be8f1bbd213aac /lib/yard/mruby/handlers/c
parent2c3c127806e64ecc32b995913778252a2212c6a9 (diff)
downloadyard-mruby-73326c64a5e720f7d31b1e52ef9fda341895e800.tar.gz
yard-mruby-73326c64a5e720f7d31b1e52ef9fda341895e800.zip
Handle #define directives
Diffstat (limited to 'lib/yard/mruby/handlers/c')
-rw-r--r--lib/yard/mruby/handlers/c/header.rb1
-rw-r--r--lib/yard/mruby/handlers/c/header/define_handler.rb23
2 files changed, 24 insertions, 0 deletions
diff --git a/lib/yard/mruby/handlers/c/header.rb b/lib/yard/mruby/handlers/c/header.rb
index 60848cd..9c955f2 100644
--- a/lib/yard/mruby/handlers/c/header.rb
+++ b/lib/yard/mruby/handlers/c/header.rb
@@ -1,3 +1,4 @@
require_relative 'header/base'
require_relative 'header/function_handler'
+require_relative 'header/define_handler'
require_relative 'header/header_decl_handler'
diff --git a/lib/yard/mruby/handlers/c/header/define_handler.rb b/lib/yard/mruby/handlers/c/header/define_handler.rb
index e69de29..1a061db 100644
--- a/lib/yard/mruby/handlers/c/header/define_handler.rb
+++ b/lib/yard/mruby/handlers/c/header/define_handler.rb
@@ -0,0 +1,23 @@
+module YARD::MRuby::Handlers::C::Header
+ class DefineHandler < Base
+ MATCH = /
+ \#\s*define\s*(\w+)
+ /mx
+
+ handles MATCH
+ statement_class YARD::MRuby::Parser::C::DirectiveStatement
+
+ process do
+ header = self.header(statement.file)
+
+ statement.declaration.scan(MATCH) do |match|
+ register DefineObject.new(header, match.first) do |obj|
+ if statement.comments
+ register_docstring(obj, statement.comments.source, statement)
+ end
+ end
+ end
+
+ end
+ end
+end