class RakuAST::Doc::Declarator { }

RakuAST::Doc::Declarator 类包含执行 RakuAST::Doc::DeclaratorTarget 角色的对象的前导和尾随文档。

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

use experimental :rakuast;

对象内省§

当解析具有前导 (#|) 和尾随 (#=) 文档的 Raku 编程语言代码时,通常会创建 RakuAST::Doc::Declarator 对象。因此,大多数开发人员只需要知道如何内省创建的对象。

方法 WHEREFORE§

say "attached to a $declarator.WHEREFORE.^name() object";

返回此对象包含声明文档的对象。

方法 leading§

.say for $declarator.leading;

返回前导声明文档的行(如果对象是通过解析 Raku 源代码创建的,则每行一行带有 #|)。

方法 trailing§

.say for $declarator.trailing;

返回尾随声明文档的行(如果对象是通过解析 Raku 源代码创建的,则每行一行带有 #=)。

方法 raku§

# method .gist falls back to .raku 
say $declarator;  # RakuAST::Doc::Declarator.new(... 

返回使用 RakuAST 调用创建块所需的字符串。

对象创建§

很少直接创建 RakuAST::Doc::Declarator 对象。此文档适用于那些希望设计自己的方式以编程方式构建 RakuAST::Doc::Declarator 对象的少数人。

方法 new§

method new(
  Str:D :$WHEREFORE,  # the associated RakuAST object 
        :@leading,    # leading lines of documentation 
        :@trailing    # trailing lines of documentation 
)

可以调用 new 方法来创建新的 RakuAST::Doc::Declarator 对象。它只接受命名参数。

# 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")
);

请注意,前导和尾随文档可能包含任何左边界空白。

:WHEREFORE§

此声明包含文档的 RakuAST 对象。

:leading§

带有前导文档字符串行的 Positional

:trailing§

带有尾随文档字符串行的 Positional

对象修改§

方法 set-WHEREFORE§

$declarator.set-WHEREFORE($object);

设置 RakuAST::Doc::Declarator 对象包含文档的对象。

方法 set-leading§

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

设置前导文档。如果没有指定参数,则重置为没有前导文档。

方法 add-leading§

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

向前导文档添加一行。

方法 set-trailing§

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

设置尾随文档。如果没有指定参数,则重置为没有尾随文档。

方法 add-trailing§

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

向尾随文档添加一行。