KDOC -- Source documentation tool

Sirtaj Singh Kang <taj@kde.org>, Dec 1998.

readSourceLine

Returns a raw line read from the current input file.
This is used by routines outside main, since I don t know
how to share fds.

readCxxLine

Reads a C++ source line, skipping comments, blank lines,
preprocessor tokens and the Q_OBJECT macro

readCxxCodeBlock

Reads a C++ code block (recursive curlies), returning the last line
or undef on error.

Parameters: none

readDecl

Returns a declaration and sets the $declNodeType variable.

A decl starts with a type or keyword and ends with [{};]
The entire decl is returned in a single line, sans newlines.

declNodeType values: undef for error, "a" for access specifier,
"c" for doc comment, "d" for other decls.

readCxxLine is used to read the declaration.

getRoot

Return a root node for the given type of input file.

identifyDecl

Parameters: decl

Identifies a declaration returned by readDecl. If a code block
needs to be skipped, this subroutine returns a 1, or 0 otherwise.

newEnum

Reads the parameters of an enumeration.

Returns the parameters, or undef on error.

initEnum

Parameters: name, (ref) params

Returns an initialized enum node.

newIDLstruct

Parameters: type, name, forward, complete, inherits...

Handles an IDL structure definition (ie module, interface,
exception).

newClass

Parameters: tmplArgs, cNodeType, name, endTag, @inheritlist

Handles a class declaration (also fwd decls).

parseInheritance

Param: inheritance decl string
Returns: list of superclasses (template decls included)

This will fail if < and > appear in strings in the decl.

newNamespace

Param: namespace name.
Returns nothing.

Imports a namespace into the current node, for ref searches etc.
Triggered by "using namespace ..."

newTypedef

Parameters: realtype, name

Handles a type definition.

newTypedefComp

Params: realtype, name endtoken

Creates a new compound type definition.

newMethod

Parameters: retType, name, params, const, pure?

Handles a new method declaration or definition.

makeParamList

Parameters:
* method (or enum) node
* string containing the whole param list
* 1 for enums

Adds a property "ParamList" to the method node.
This property contains a list of nodes, one for each parameter.

Each parameter node has the following properties:
* ArgType the type of the argument, e.g. const QString&
* ArgName the name of the argument - optionnal
* DefaultValue the default value of the argument - optionnal

For enum values, ArgType is unset, ArgName is the name, DefaultValue its value.

Author: David Faure <david@mandrakesoft.com>

newAccess

Parameters: access

Sets the default "Access" specifier for the current class node. If
the access is a "slot" type, "_slots" is appended to the access
string.

newVar

Parameters: type, name, value

New variable. Value is ignored if undef

show_usage

Display usage information and quit.

show_version

Display short version information and quit.