TOC Index
Contains the declarator docs of a RakuAST object
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;
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.
say "attached to a $declarator.WHEREFORE.^name() object";
Returns the object for which this object contains the declarator documentation.
.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.
.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 .gist falls back to .rakusay $declarator; # RakuAST::Doc::Declarator.new(...
Returns the string that is needed for the creation of the block using RakuAST calls.
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( 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 objectmy $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.
The RakuAST object for which this declarator contains the documentation.
A Positional with the lines of leading documentation strings.
A Positional with the lines of trailing documentation strings.
$declarator.set-WHEREFORE($object);
Set the object for which the RakuAST::Doc::Declarator object contains the documentation.
$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.
$declarator.add-leading("additional");
Add a line to the leading documentation.
$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.
$declarator.add-trailing("additional");
Add a line to the trailing documentation.