NAME

ExtUtils::XSpp::Node::Argument - Node representing a method/function argument

DESCRIPTION

An ExtUtils::XSpp::Node subclass representing a single function or method argument such as

int foo = 0.

which would translate to an ExtUtils::XSpp::Node::Argument which has its type set to int, its name set to foo and its default set to 0..

METHODS

new

Creates a new ExtUtils::XSpp::Node::Argument.

Named parameters: type indicating the C++ argument type, name indicating the variable name, and optionally default indicating the default value of the argument.

uses_length

Returns true if the argument uses the XS length feature, false otherwise.

implementation_name

Returns the same as the name method unless the argument is of the %length(something) variant. In that case, implementation_name returns a munged version of the name that addresses the name mangling done by xsubpp: XSauto_length_of_somthing.

fix_name_in_code

Given a code string, replaces any occurrances of the name of this Argument with its implementation name. If the implementation name is the same as the name, which is the most likely case, the code remains completely untouched.

Returns the potentially modified code.

ACCESSORS

type

Returns the type of the argument.

name

Returns the variable name of the argument variable.

default

Returns the default for the function parameter if any.

has_default

Returns whether there is a default for the function parameter.

function

Returns a reference to the containing function/method.

index

Returns the 0-based index of the argument in the argument list.