class RakuAST::Doc::Declarator { }
The RakuAST::Doc::Declarator
class contains the leading and trailing documentation of an object doing the RakuAST::Doc::DeclaratorTarget
role.
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§
RakuAST::Doc::Declarator
objects are typically created when parsing Raku Programming Language code that has objects with leading (#|
) and trailing (#=
) documentation on it. So most developers will only need to know how to introspect the objects created.
method WHEREFORE§
say "attached to a $declarator.WHEREFORE.^name() object";
Returns the object for which this object contains the declarator documentation.
method leading§
.say for $declarator.leading;
Returns the lines of the leading declarator documentation (one for each line with #|
if the object was created from parsing Raku source code.
method trailing§
.say for $declarator.trailing;
Returns the lines of the trailing declarator documentation (one for each line with #=
if the object was created from parsing Raku source code.
method raku§
# method .gist falls back to .raku say $declarator; # RakuAST::Doc::Declarator.new(...
Returns the string that is needed for the creation of the block using RakuAST
calls.
Object creation§
One seldom creates RakuAST::Doc::Declarator
objects directly. This documentation is intended for those few people who'd like to devise their own way of programmatically building a RakuAST::Doc::Declarator
object.
method new§
method new( Str:D :$WHEREFORE, # the associated RakuAST object :@leading, # leading lines of documentation :@trailing # trailing lines of documentation )
The new
method can be called to create a new RakuAST::Doc::Declarator
object. It only takes named arguments.
# there is no syntax for creating just a ::Declarator object my $declarator = RakuAST::Doc::Declarator.new( :WHEREFORE(RakuAST::VarDeclaration::Simple.new(...)), :leading("line 1 leading","line 2 leading"), :trailing("line 1 trailing","line 2 trailing") );
Note that the leading and trailing documentation may contain any left margin whitespace.
:WHEREFORE§
The RakuAST
object for which this declarator contains the documentation.
:leading§
A Positional
with the lines of leading documentation strings.
:trailing§
A Positional
with the lines of trailing documentation strings.
Object modification§
method set-WHEREFORE§
$declarator.set-WHEREFORE($object);
Set the object for which the RakuAST::Doc::Declarator
object contains the documentation.
method set-leading§
$declarator.set-leading; # reset $declarator.set-leading("foo", "bar");
Set the leading documentation. If no arguments are specified, reset to not having any leading documentation.
method add-leading§
$declarator.add-leading("additional");
Add a line to the leading documentation.
method set-trailing§
$declarator.set-trailing; # reset $declarator.set-trailing("foo", "bar");
Set the trailing documentation. If no arguments are specified, reset to not having any trailing documentation.
method add-trailing§
$declarator.add-trailing("additional");
Add a line to the trailing documentation.