RakuAST::Doc::Markup
类包含有关 RakuAST::Doc::Paragraph
或其他 RakuAST::Doc::Markup
对象中标记代码的信息。
对 RakuAST
功能的支持在语言版本 6.e+
中可用,并在 Rakudo 编译器版本 2023.02 中添加。在较早的语言版本中,仅在指定时可用
use experimental :rakuast;
对象内省§
当解析包含 RakuDoc
标记的 Raku 编程语言代码时,通常会创建 RakuAST::Doc::Markup
对象。因此,大多数开发人员只需要知道如何内省创建的对象。
方法 letter§
say "letter = $markup.letter()"; # B
返回标记的字母。这通常是大写字母(任何具有“Lu”属性的 Unicode 代码点),例如 B
,但也可以是 Δ
等字母。
方法 opener§
say "opener = $markup.opener()"; # <
返回指示标记开头的字符串。这通常是“<”、“<<”或“«”。它主要用于 RakuAST::Doc::Markup
对象的字符串化。
方法 closer§
say "closer = $markup.closer()"; # >
返回指示标记开头的字符串。这通常是“>”、“>>”或“»”。它主要用于 RakuAST::Doc::Markup
对象的字符串化。
方法 atoms§
.say for .atoms; # and
返回一个 List
的原子。请注意,每个元素可以是字符串或另一个 RakuAST::Doc::Markup
对象。
方法 meta§
.say for .meta;
返回一个 List
的元对象。请注意,每个元素可以是字符串或另一个 RakuAST::Doc::Markup
对象。RakuDoc
标准为某些字母的标记元信息分配了含义,例如 URL(在 L
的情况下)。
方法 Str§
put ; # B<and>
返回标记对象的字符串,以及任何嵌入式标记也已字符串化。
方法 raku§
# method .gist falls back to .rakusay ; # RakuAST::Doc::Markup.new(...
返回使用 RakuAST
调用创建标记所需的字符串。
对象创建§
人们很少直接创建 RakuAST::Doc::Markup
对象。此文档适用于希望设计自己的方式以编程方式构建 RakuAST::Doc::Markup
对象的少数人。
方法 new§
method new(Str :!, # markup identifier, e.g. "B"Str : = "<", # opener markerStr : = ">", # closer marker:, # any atoms of this markup:, # any meta of this markup)
可以调用 new
方法来创建一个新的 RakuAST::Doc::Markup
对象。它只接受命名参数,其中 :letter
参数是必需的。
B<and>
my = RakuAST::Doc::Markup.new(:letter<B>,:atoms("and"));
请注意,除了 :letter
之外,所有参数都是可选的。因此,也可以创建“空”标记。
:letter§
标记对象的“类型”。通常期望是大写字母,但这不是强制的。RakuDoc
标准为大多数 ASCII 大写字母指定了含义,因此在使用 ASCII 大写字母时,最好遵守此标准。
:opener§
标记打开序列标记。默认为 "<"
。主要用于字符串化。
:closer§
标记关闭序列标记。默认为 ">"
。主要用于字符串化。
:atoms§
标记的实际内容,指定为 Positional
。每个元素可以是字符串或另一个 RakuAST::Doc::Markup
对象。
:meta§
标记的元信息,指定为 Positional
。每个元素可以是字符串或另一个 RakuAST::Doc::Markup
对象。请注意,RakuDoc
标准将某些字母的元信息与特定含义相关联,例如在字母为 L
的情况下,元信息为 URL。
对象修改§
方法 set-atoms§
.set-atoms; # reset.set-atoms( ("and",) );
将原子设置为给定的 Positional
。期望值是字符串或 RakuAST::Doc::Markup
对象。如果未指定任何值,则对象将没有原子。
方法 add-atom§
.add-atom( ("foo",) );
向对象的原子添加一个原子。期望值是字符串或 RakuAST::Doc::Markup
对象。
方法 set-meta§
.set-meta; # reset.set-meta( ("https://raku.perl5.cn",) );
将元信息设置为给定的 Positional
。期望值是字符串或 RakuAST::Doc::Markup
对象。如果未指定任何值,则对象将没有元信息。
方法 add-meta§
.add-meta( ("bar",) );
向对象的元信息中添加一个项目。值应为字符串或 RakuAST::Doc::Markup
对象。