role RakuAST::Doc::DeclaratorTarget { }

The RakuAST::Doc::DeclaratorTarget role is done by objects that support leading and trailing documentation.

Support for RakuAST functionality is available in language version 6.e+ and was added in Rakudo compiler release 2023.02. In earlier language versions it is only available when specifying:

use experimental :rakuast;

Object introspection§

Objects doing the RakuAST::Doc::DeclaratorTarget role are typically created when parsing Raku Programming Language code for objects that allow leading (#|) and trailing (#=) documentation on them. So most developers will only need to know how to introspect the objects created.

method WHY§

with $target.WHY {
    say "leading: $_.leading()";
    say "trailing: $_.trailing()";
}

Returns the RakuAST::Doc::Declarator object containing the declarator documentation, if any.

Object creation§

Each object doing the RakuAST::Doc::DeclaratorTarget role has its own why of creation. So there's nothing general that can be said about it here.

Object modification§

method set-WHY§

$target.set-WHY($declarator);

Set the RakuAST::Doc::Declarator object to be associated.

method cut-WHY§

my $WHY := $target.cut-WHY;

Removes the RakuAST::Doc::Declarator object, if any. Intended to be used when deparsing / stringification to prevent an infinite loop because the RakuAST::Doc::Declarator object points to its target, and the other way around. Usually called on a clone of the original target.

method set-leading§

$target.set-leading;  # reset
$target.set-leading("foo", "bar");

Set the leading documentation. If no arguments are specified, reset to not having any leading documentation. Creates a RakuAST::Doc::Declarator object and sets it in the .WHY if there wasn't one already.

method add-leading§

$target.add-leading("additional");

Add a line to the leading documentation. Creates a RakuAST::Doc::Declarator object and sets it in the .WHY if there wasn't one already.

method set-trailing§

$target.set-trailing;  # reset
$target.set-trailing("foo", "bar");

Set the trailing documentation. If no arguments are specified, reset to not having any trailing documentation. Creates a RakuAST::Doc::Declarator object and sets it in the .WHY if there wasn't one already.

method add-trailing§

$target.add-trailing("additional");

Add a line to the trailing documentation. Creates a RakuAST::Doc::Declarator object and sets it in the .WHY if there wasn't one already.