Next: Glib::Signal | Previous: Glib::ParamSpec | [Gtk2-Perl - Table of Contents] | [Gtk2-Perl - Index] |
Glib::ParseXSDoc - Parse POD and XSub declarations from XS files.
This is the heart of an automatic API reference documentation system for XS-based Perl modules. FIXME more info here!!
FIXME document recognized POD directives and the output data structures
=for apidoc
paragraphs following an =object
paragraphs in the
verbatim sections are stripped (as are the =object
paragraphs), and will
appear instead in $data->{$package}{pods}
.
FYI, this creates a new parser and calls parse_file
on it for each
input filename; then calls swizzle_pods
to ensure that any
=for apidoc name
pods are matched up with their target xsubs; and
finally calls Data::Dumper to write the data to stdout. So, if you want
to get finer control over how the output is created, or keep all the data
in-process, now you know how. :-)
=for object
directive. Ensures that it exists.
Returns a reference to the member of the main data structure, so modifications
are permanent and useful.
=for apidoc
pods to xsubs.
__hide__
and __function__
directives in =for apidoc
lines.
We look for the strings anywhere, but you'll typically have it at the end of the line, e.g.:
=for apidoc symname __hide__ for detached blocks =for apidoc __hide__ for attached blocks =for apidoc symname __function__ for functions rather than methods =for apidoc __function__ for functions rather than methods
Without artificial intelligence, we cannot reliably determine anything about the types or number of parameters returned from xsubs with PPCODE bodies.
OUTLIST parameters are pulled from the args list and put into an "outlist" key. IN_OUTLIST parameters are put into both.
Data type names are not mangled at all.
Note that the method can take either a list of lines or a reference to a list of lines. The flat list form is provided for compatibility; the reference form is preferred, to avoid duplicating a potentially large list of strings.
muppet <scott at asofyet dot org>
Copyright (C) 2003, 2004 by muppet
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details.
You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307 USA.