role RakuAST::Doc::DeclaratorTarget { }

RakuAST::Doc::DeclaratorTarget 角色由支持前导和尾随文档的对象完成。

RakuAST 功能的支持在语言版本 6.e+ 中可用,并在 Rakudo 编译器版本 2023.02 中添加。在早期语言版本中,仅在指定时可用

use experimental :rakuast;

对象内省§

执行 RakuAST::Doc::DeclaratorTarget 角色的对象通常在解析 Raku 编程语言代码时创建,用于允许在其上放置前导 (#|) 和尾随 (#=) 文档的对象。因此,大多数开发人员只需要知道如何内省所创建的对象即可。

方法 WHY§

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

返回包含声明符文档(如果有)的 RakuAST::Doc::Declarator 对象。

对象创建§

执行 RakuAST::Doc::DeclaratorTarget 角色的每个对象都有其自己的创建原因。因此,这里无法对此进行概括。

对象修改§

方法 set-WHY§

$target.set-WHY($declarator);

设置要关联的 RakuAST::Doc::Declarator 对象。

方法 cut-WHY§

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

删除 RakuAST::Doc::Declarator 对象(如果有)。旨在在反解析/字符串化时使用,以防止无限循环,因为 RakuAST::Doc::Declarator 对象指向其目标,反之亦然。通常在原始目标的克隆上调用。

方法 set-leading§

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

设置前导文档。如果未指定任何参数,则重置为没有前导文档。创建一个 RakuAST::Doc::Declarator 对象,并在 .WHY 中设置它(如果尚未设置)。

方法 add-leading§

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

向前导文档添加一行。创建一个 RakuAST::Doc::Declarator 对象,并在 .WHY 中设置它(如果尚未设置)。

方法 set-trailing§

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

设置尾部文档。如果未指定任何参数,则重置为无任何尾部文档。创建一个 RakuAST::Doc::Declarator 对象,如果尚未存在,则将其设置在 .WHY 中。

方法 add-trailing§

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

向尾部文档添加一行。创建一个 RakuAST::Doc::Declarator 对象,如果尚未存在,则将其设置在 .WHY 中。