Skip to content

Instantly share code, notes, and snippets.

@ashgti
Created March 1, 2015 08:27
Show Gist options
  • Save ashgti/055797e1199b5cff4e43 to your computer and use it in GitHub Desktop.
Save ashgti/055797e1199b5cff4e43 to your computer and use it in GitHub Desktop.
Perl6 Grammar with syntax applied from the perl.tmbundle
This file has been truncated, but you can view the full file.
<!DOCTYPE html>
<html>
<head>
<title>Perl6Grammar.nqp</title>
<style media="screen">
atom-text-editor,
:host {
background-color: #002b36;
color: #839496;
}
atom-text-editor .invisible-character,
:host .invisible-character {
color: rgba(101, 123, 131, 0.2);
}
atom-text-editor .indent-guide,
:host .indent-guide {
color: rgba(101, 123, 131, 0.2);
}
atom-text-editor .gutter,
:host .gutter {
background-color: #073642;
color: #839496;
}
atom-text-editor .gutter .line-number,
:host .gutter .line-number {
opacity: 1;
}
atom-text-editor .gutter .line-number.folded,
:host .gutter .line-number.folded,
atom-text-editor .gutter .line-number:after,
:host .gutter .line-number:after,
atom-text-editor .fold-marker:after,
:host .fold-marker:after {
color: #d33682;
}
atom-text-editor .cursor,
:host .cursor {
border-color: #fdf6e3;
}
atom-text-editor .selection .region,
:host .selection .region {
background-color: #073a47;
}
atom-text-editor .line-number.cursor-line-no-selection,
:host .line-number.cursor-line-no-selection {
background-color: #0a4d5e;
}
.bracket-matcher .region {
background-color: rgba(88, 110, 117, 0.8);
opacity: 0.3;
}
.comment {
color: #586e75;
font-style: italic;
}
.entity {
color: #839496;
}
.entity .punctuation {
color: #dc322f;
}
.entity.name {
color: #cb4b16;
}
.entity.name.tag {
color: #268bd2;
}
.entity.constant {
color: #dc322f;
}
.entity.attribute-name {
color: #586e75;
}
.keyword {
color: #859900;
}
.keyword.other.special-method {
color: #cb4b16;
}
.storage.type {
color: #268bd2;
}
.storage.class.type {
color: #d33682;
}
.storage.modifier {
color: #268bd2;
}
.constant {
color: #b58900;
}
.constant.numeric,
.constant.boolean,
.constant.symbol,
.constant.symbol .punctuation {
color: #2aa198;
}
.constant.symbol.hashkey {
color: #dc322f;
}
.constant.symbol.hashkey .punctuation {
color: #dc322f;
}
.delimiter,
.brace {
color: #268bd2;
}
.delimiter,
.round {
color: #859900;
}
.delimiter.period {
color: #859900;
}
.invalid.deprecated {
text-decoration: underline;
color: #dc322f;
}
.invalid.illegal {
color: #dc322f;
}
.method .name {
color: #268bd2;
}
.operator.assignment {
color: #93a1a1;
}
.parameter {
color: #dc322f;
}
.property-name {
color: #859900;
}
.property-value .unit {
color: #839496;
}
.string {
color: #2aa198;
}
.string .constant.character.escape {
color: #dc322f;
font-weight: bold;
}
.string .punctuation.string {
color: #2aa198;
}
.string.regexp {
color: #2aa198;
}
.string.regexp .string.regexp.arbitrary-repetition {
color: #2aa198;
}
.variable {
color: #2aa198;
}
.variable.instance {
color: #268bd2;
}
.variable.constant {
color: #586e75;
}
.variable.parameter {
color: #dc322f;
}
.support {
color: #cb4b16;
}
.support.class {
color: #dc322f;
}
.terminator {
color: #859900;
}
.source.c .meta.preprocessor,
.source.c\+\+ .meta.preprocessor {
color: #dc322f;
}
.source.c .keyword.control.import,
.source.c\+\+ .keyword.control.import {
color: #dc322f;
}
.source.c .punctuation.string,
.source.c\+\+ .punctuation.string {
color: #2aa198;
}
.source.c .constant,
.source.c\+\+ .constant {
color: #dc322f;
}
.source.c .constant.numeric,
.source.c\+\+ .constant.numeric,
.source.c .constant.language.c,
.source.c\+\+ .constant.language.c {
color: #2aa198;
}
.source.c .storage,
.source.c\+\+ .storage {
color: #b58900;
}
.source.c .entity,
.source.c\+\+ .entity {
color: #839496;
}
.source.c .entity.name.function.preprocessor,
.source.c\+\+ .entity.name.function.preprocessor {
color: #dc322f;
}
.source.c .support.type,
.source.c\+\+ .support.type {
color: #b58900;
}
.source.c .support.type.posix-reserved,
.source.c\+\+ .support.type.posix-reserved {
color: #839496;
}
.source.c .variable.other.dot-access,
.source.c\+\+ .variable.other.dot-access {
color: #839496;
}
.source.c .variable.parameter.preprocessor,
.source.c\+\+ .variable.parameter.preprocessor {
color: #dc322f;
}
.source.css .entity.name {
color: #859900;
}
.source.css .punctuation.section {
color: #268bd2;
}
.source.css .punctuation.separator {
color: #839496;
}
.source.css .punctuation.terminator {
color: #839496;
}
.source.css .punctuation.definition.entity {
color: #268bd2;
}
.source.css .punctuation.definition.constant {
color: #839496;
}
.source.css .brace {
color: #268bd2;
}
.source.css .variable {
color: #268bd2;
}
.source.css .attribute-name.class {
color: #268bd2;
}
.source.css .property-name {
color: #b58900;
}
.source.css .property-value {
color: #2aa198;
}
.source.css .unit {
color: #2aa198;
}
.source.css .support.function {
color: #268bd2;
}
.source.css .rgb-value {
color: #2aa198;
}
.source.css .id {
color: #268bd2;
}
.source.css .pseudo-element {
color: #cb4b16;
}
.source.css .pseudo-class {
color: #cb4b16;
}
.source.css .pseudo-class.attribute-name {
color: #cb4b16;
}
atom-text-editor .gutter .git-line-modified,
:host .gutter .git-line-modified {
border-left: 2px solid #b58900;
padding-left: calc(0.5em - 2px);
color: #839496;
}
atom-text-editor .gutter .git-line-added,
:host .gutter .git-line-added {
border-left: 2px solid #859900;
padding-left: calc(0.5em - 2px);
color: #839496;
}
atom-text-editor .gutter .git-line-removed,
:host .gutter .git-line-removed {
border-left: 2px solid #dc322f;
padding-left: calc(0.5em - 2px);
color: #839496;
}
.source.js .constant {
color: #859900;
}
.source.js .comma {
color: #839496;
}
.source.js .support.class {
color: #859900;
}
.source.js .entity.name.type {
color: #b58900;
}
.source.js .entity.name {
color: #839496;
}
.source.js .meta.brace {
color: #839496;
}
.source.js .keyword {
color: #839496;
}
.source.js .keyword.operator.new {
color: #859900;
}
.source.js .keyword.control {
color: #859900;
}
.source.js .keyword.control.regexp {
color: #2aa198;
}
.source.js .variable {
color: #268bd2;
}
.source.js .variable.parameter {
color: #839496;
}
.source.js .regexp {
color: #2aa198;
}
.source.js .support.function {
color: #839496;
}
.source.js .support.constant {
color: #839496;
}
.source.js .constant.numeric {
color: #839496;
}
.source.js .punctuation.terminator.statement {
color: #839496;
}
.source.js .meta.delimiter.method.period {
color: #839496;
}
.source.js .meta.brace.square {
color: #268bd2;
}
.source.js .meta.brace.curly {
color: #268bd2;
}
atom-text-editor .gutter .line-number.linter-warning .icon-right:before,
:host .gutter .line-number.linter-warning .icon-right:before {
color: #b58900;
}
atom-text-editor .gutter .line-number.linter-error .icon-right:before,
:host .gutter .line-number.linter-error .icon-right:before {
color: #dc322f;
}
atom-text-editor .highlights .linter-warning .region,
:host .highlights .linter-warning .region {
border: 1px solid #b58900;
background-image: none;
background-color: rgba(181, 137, 0, 0.2);
}
atom-text-editor .highlights .linter-error .region,
:host .highlights .linter-error .region {
border: 1px solid #dc322f;
background-image: none;
background-color: rgba(255, 16, 12, 0.2);
}
atom-text-editor .gfm .markup.italic,
:host .gfm .markup.italic {
font-style: italic;
}
atom-text-editor .gfm .markup.bold,
:host .gfm .markup.bold {
font-weight: bold;
}
atom-text-editor .gfm .markup.heading,
:host .gfm .markup.heading {
color: #cb4b16;
}
atom-text-editor .gfm .link,
:host .gfm .link {
color: #2aa198;
}
atom-text-editor .gfm .link .entity,
:host .gfm .link .entity {
color: #6c71c4;
}
atom-text-editor .gfm .raw,
:host .gfm .raw {
font-style: italic;
}
atom-text-editor .gfm.support,
:host .gfm.support {
color: #dc322f;
}
.source.php .storage.type.class {
color: #b58900;
}
.source.php .storage.type.function {
color: #dc322f;
}
.source.php .storage.modifier {
color: #b58900;
}
.source.php .entity.name.type.class {
color: #839496;
}
.source.php .entity.name.function {
color: #839496;
}
.source.php .entity.other {
color: #839496;
}
.source.php .variable {
color: #268bd2;
}
.source.php .punctuation.definition {
color: #839496;
}
.source.php .punctuation.definition.comment {
color: #586e75;
}
.source.php .punctuation.definition.array {
color: #dc322f;
}
.source.php .punctuation.definition.string {
color: #839496;
}
.source.php .punctuation.definition.variable {
color: #859900;
}
.source.php .punctuation.section.scope {
color: #dc322f;
}
.source.php .support.function.construct {
color: #b58900;
}
.source.php .support.function.array {
color: #859900;
}
.source.php .keyword.operator.class {
color: #b58900;
}
.source.php .keyword.operator.assignment {
color: #859900;
}
.source.php .keyword.other {
color: #dc322f;
}
.source.python .entity {
color: #839496;
}
.source.python .entity.name {
color: #268bd2;
}
.source.python .entity.other {
color: #268bd2;
}
.source.python .function {
color: #268bd2;
}
.source.python .function.magic {
color: #268bd2;
}
.source.python .punctuation.string {
color: #2aa198;
}
.source.python .keyword.operator {
color: #839496;
}
.source.python .keyword.operator.quantifier {
color: #2aa198;
}
.source.python .keyword.operator.logical {
color: #859900;
}
.source.python .keyword.control.import {
color: #cb4b16;
}
.source.python .keyword.other {
color: #859900;
}
.source.python .constant.language {
color: #268bd2;
}
.source.python .constant.character {
color: #2aa198;
}
.source.python .constant.other {
color: #dc322f;
}
.source.python .entity.name.type.class {
color: #268bd2;
}
.source.python .variable {
color: #839496;
}
.source.python .support.function.builtin {
color: #268bd2;
}
.source.python .support.type.exception.python {
color: #b58900;
}
.source.python .support.type.python {
color: #268bd2;
}
.source.python .storage.type.string {
color: #2aa198;
}
.source.python .storage.type.class {
color: #859900;
}
.source.python .storage.type.class.todo {
color: #d33682;
}
.source.python .storage.type.function {
color: #859900;
}
.source.python .punctuation.definition.parameters {
color: #839496;
}
.source.python .punctuation.section.function.begin {
color: #839496;
}
.source.python .punctuation.separator.parameters {
color: #839496;
}
.source.ruby .meta.embedded .punctuation.section {
color: #dc322f;
}
.source.ruby .punctuation.definition {
color: #839496;
}
.source.ruby .punctuation.definition.string {
color: #dc322f;
}
.source.ruby .punctuation.definition.comment {
color: #586e75;
}
.source.ruby .entity.inherited-class {
color: #b58900;
}
.source.ruby .variable.parameter {
color: #839496;
}
.source.ruby .variable.constant {
color: #b58900;
}
.source.ruby .instance .punctuation.definition {
color: #268bd2;
}
.source.ruby .class {
color: #b58900;
}
.source.ruby .class.control {
color: #839496;
}
.source.ruby .module {
color: #b58900;
}
.source.ruby .require .keyword.other.special-method {
color: #cb4b16;
}
.source.ruby .keyword.other.special-method {
color: #cb4b16;
}
.source.ruby .keyword.other {
color: #859900;
}
.source.ruby .keyword.control {
color: #859900;
}
.source.ruby .special-method {
color: #268bd2;
}
.source.ruby .symbol {
color: #2aa198;
}
.source.ruby .symbol .punctuation.definition {
color: #2aa198;
}
.source.ruby .hashkey {
color: #dc322f;
}
.source.ruby .hashkey .punctuation.definition {
color: #dc322f;
}
.source.ruby .string.regexp {
color: #dc322f;
}
.source.ruby .todo {
color: #d33682;
}
.source.ruby .variable.ruby.global {
color: #268bd2;
}
.source.ruby .variable.ruby.global .punctuation {
color: #268bd2;
}
.source.ruby .variable.block {
color: #268bd2;
}
.source.ruby .punctuation.separator {
color: #839496;
}
.source.ruby .string.interpolated .embedded.line.ruby .punctuation .source.ruby {
color: #dc322f;
}
.source.ruby .string.interpolated .embedded.line.ruby .source.ruby {
color: #839496;
}
.source.ruby .string.interpolated .embedded.line.ruby .source.ruby .punctuation.array,
.source.ruby .string.interpolated .embedded.line.ruby .source.ruby .punctuation.function {
color: #839496;
}
.source.ruby .support.function {
color: #839496;
}
.source.ruby .support.function.kernel {
color: #859900;
}
.source.scala .variable {
color: #93a1a1;
}
.source.scala .declaration {
color: #93a1a1;
font-weight: bold;
}
.source.scala .comparison {
color: #93a1a1;
}
.source.scala .class,
.source.scala .type {
color: #b58900;
}
.source.scala .val {
font-weight: normal;
}
.source.scala .variable {
font-weight: bold;
}
.source.scala .variable.parameter {
color: #6c71c4;
font-weight: normal;
}
.source.scala .control.flow {
color: #93a1a1;
font-weight: bold;
}
.source.scala .constant.language {
color: #93a1a1;
font-weight: bold;
}
.source.scala .function.declaration {
color: #6c71c4;
}
.source.scala .modifier.other {
font-weight: bold;
}
.source.scala .package {
color: #93a1a1;
}
.source.scala .variable.import {
font-weight: normal;
}
.source.scala .type .bounds,
.source.scala .type .class {
color: #6c71c4;
}
.source.scala .documentation :not(.embedded).link.entity {
color: #268bd2;
text-decoration: underline;
}
.source.scala .documentation :not(.embedded) .class,
.source.scala .documentation :not(.embedded) .parameter {
color: #93a1a1;
}
.source.scala .documentation :not(.embedded) .description {
color: #586e75;
}
.source.scala .embedded {
color: #93a1a1;
opacity: 0.8;
font-style: italic;
}
.source.scala .embedded .margin,
.source.scala .embedded .delimiters {
font-style: normal;
}
.terminal {
background-color: #002b36;
}
.terminal .color-0 {
color: #839496;
}
.terminal .background-0 {
background-color: #002b36;
}
.terminal .color-1 {
color: #dc322f;
}
.terminal .background-1 {
background-color: #dc322f;
}
.terminal .color-2 {
color: #859900;
}
.terminal .background-2 {
background-color: #859900;
}
.terminal .color-3 {
color: #b58900;
}
.terminal .background-3 {
background-color: #b58900;
}
.terminal .color-4 {
color: #268bd2;
}
.terminal .background-4 {
background-color: #268bd2;
}
.terminal .color-5 {
color: #d33682;
}
.terminal .background-5 {
background-color: #d33682;
}
.terminal .color-6 {
color: #2aa198;
}
.terminal .background-6 {
background-color: #2aa198;
}
.terminal .color-7 {
color: #fdf6e3;
}
.terminal .background-7 {
background-color: #fdf6e3;
}
atom-text-editor .wrap-guide,
:host .wrap-guide {
background-color: #073642;
}
</style>
</head>
<body>
<h1>Syntax Example for: <strong>Perl6Grammar.nqp</strong>
<pre class="editor editor-colors"><div class="line"><span class="source perl6"><span class="keyword other include perl6"><span>use</span></span><span>&nbsp;QRegex;</span></span></div><div class="line"><span class="source perl6"><span class="keyword other include perl6"><span>use</span></span><span>&nbsp;NQPP6QRegex;</span></span></div><div class="line"><span class="source perl6"><span class="keyword other include perl6"><span>use</span></span><span>&nbsp;NQPP5QRegex;</span></span></div><div class="line"><span class="source perl6"><span class="keyword other include perl6"><span>use</span></span><span>&nbsp;Perl6::Actions;</span></span></div><div class="line"><span class="source perl6"><span class="keyword other include perl6"><span>use</span></span><span>&nbsp;Perl6::World;</span></span></div><div class="line"><span class="source perl6"><span class="keyword other include perl6"><span>use</span></span><span>&nbsp;Perl6::Pod;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span class="keyword other module perl6"><span>role</span></span><span>&nbsp;startstop[</span><span class="variable other basic perl6"><span>$start</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$stop</span></span><span>]&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;starter&nbsp;{&nbsp;</span><span class="variable other basic perl6"><span>$start</span></span><span>&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;stopper&nbsp;{&nbsp;</span><span class="variable other basic perl6"><span>$stop</span></span><span>&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span class="keyword other module perl6"><span>role</span></span><span>&nbsp;stop[</span><span class="variable other basic perl6"><span>$stop</span></span><span>]&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;starter&nbsp;{&nbsp;&lt;!&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;stopper&nbsp;{&nbsp;</span><span class="variable other basic perl6"><span>$stop</span></span><span>&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span class="comment line number-sign perl6"><span>#&nbsp;This&nbsp;role&nbsp;captures&nbsp;things&nbsp;that&nbsp;STD&nbsp;factors&nbsp;out&nbsp;from&nbsp;any&nbsp;individual&nbsp;grammar,</span></span></span></div><div class="line"><span class="source perl6"><span class="comment line number-sign perl6"><span>#&nbsp;but&nbsp;that&nbsp;don&#39;t&nbsp;make&nbsp;sense&nbsp;to&nbsp;go&nbsp;in&nbsp;HLL::Grammar.</span></span></span></div><div class="line"><span class="source perl6"><span class="keyword other module perl6"><span>role</span></span><span>&nbsp;STD&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;opener&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\x0028&nbsp;\x003C&nbsp;\x005B&nbsp;\x007B&nbsp;\x00AB&nbsp;\x0F3A&nbsp;\x0F3C&nbsp;\x169B&nbsp;\x2018&nbsp;\x201A&nbsp;\x201B</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\x201C&nbsp;\x201E&nbsp;\x201F&nbsp;\x2039&nbsp;\x2045&nbsp;\x207D&nbsp;\x208D&nbsp;\x2208&nbsp;\x2209&nbsp;\x220A&nbsp;\x2215</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\x223C&nbsp;\x2243&nbsp;\x2252&nbsp;\x2254&nbsp;\x2264&nbsp;\x2266&nbsp;\x2268&nbsp;\x226A&nbsp;\x226E&nbsp;\x2270&nbsp;\x2272</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\x2274&nbsp;\x2276&nbsp;\x2278&nbsp;\x227A&nbsp;\x227C&nbsp;\x227E&nbsp;\x2280&nbsp;\x2282&nbsp;\x2284&nbsp;\x2286&nbsp;\x2288</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\x228A&nbsp;\x228F&nbsp;\x2291&nbsp;\x2298&nbsp;\x22A2&nbsp;\x22A6&nbsp;\x22A8&nbsp;\x22A9&nbsp;\x22AB&nbsp;\x22B0&nbsp;\x22B2</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\x22B4&nbsp;\x22B6&nbsp;\x22C9&nbsp;\x22CB&nbsp;\x22D0&nbsp;\x22D6&nbsp;\x22D8&nbsp;\x22DA&nbsp;\x22DC&nbsp;\x22DE&nbsp;\x22E0</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\x22E2&nbsp;\x22E4&nbsp;\x22E6&nbsp;\x22E8&nbsp;\x22EA&nbsp;\x22EC&nbsp;\x22F0&nbsp;\x22F2&nbsp;\x22F3&nbsp;\x22F4&nbsp;\x22F6</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\x22F7&nbsp;\x2308&nbsp;\x230A&nbsp;\x2329&nbsp;\x23B4&nbsp;\x2768&nbsp;\x276A&nbsp;\x276C&nbsp;\x276E&nbsp;\x2770&nbsp;\x2772</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\x2774&nbsp;\x27C3&nbsp;\x27C5&nbsp;\x27D5&nbsp;\x27DD&nbsp;\x27E2&nbsp;\x27E4&nbsp;\x27E6&nbsp;\x27E8&nbsp;\x27EA&nbsp;\x2983</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\x2985&nbsp;\x2987&nbsp;\x2989&nbsp;\x298B&nbsp;\x298D&nbsp;\x298F&nbsp;\x2991&nbsp;\x2993&nbsp;\x2995&nbsp;\x2997&nbsp;\x29C0</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\x29C4&nbsp;\x29CF&nbsp;\x29D1&nbsp;\x29D4&nbsp;\x29D8&nbsp;\x29DA&nbsp;\x29F8&nbsp;\x29FC&nbsp;\x2A2B&nbsp;\x2A2D&nbsp;\x2A34</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\x2A3C&nbsp;\x2A64&nbsp;\x2A79&nbsp;\x2A7D&nbsp;\x2A7F&nbsp;\x2A81&nbsp;\x2A83&nbsp;\x2A8B&nbsp;\x2A91&nbsp;\x2A93&nbsp;\x2A95</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\x2A97&nbsp;\x2A99&nbsp;\x2A9B&nbsp;\x2AA1&nbsp;\x2AA6&nbsp;\x2AA8&nbsp;\x2AAA&nbsp;\x2AAC&nbsp;\x2AAF&nbsp;\x2AB3&nbsp;\x2ABB</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\x2ABD&nbsp;\x2ABF&nbsp;\x2AC1&nbsp;\x2AC3&nbsp;\x2AC5&nbsp;\x2ACD&nbsp;\x2ACF&nbsp;\x2AD1&nbsp;\x2AD3&nbsp;\x2AD5&nbsp;\x2AEC</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\x2AF7&nbsp;\x2AF9&nbsp;\x2E02&nbsp;\x2E04&nbsp;\x2E09&nbsp;\x2E0C&nbsp;\x2E1C&nbsp;\x2E20&nbsp;\x3008&nbsp;\x300A&nbsp;\x300C</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\x300E&nbsp;\x3010&nbsp;\x3014&nbsp;\x3016&nbsp;\x3018&nbsp;\x301A&nbsp;\x301D&nbsp;\xFD3E&nbsp;\xFE17&nbsp;\xFE35&nbsp;\xFE37</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\xFE39&nbsp;\xFE3B&nbsp;\xFE3D&nbsp;\xFE3F&nbsp;\xFE41&nbsp;\xFE43&nbsp;\xFE47&nbsp;\xFE59&nbsp;\xFE5B&nbsp;\xFE5D&nbsp;\xFF08</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\xFF1C&nbsp;\xFF3B&nbsp;\xFF5B&nbsp;\xFF5F&nbsp;\xFF62</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>method</span></span><span>&nbsp;balanced(</span><span class="variable other basic perl6"><span>$start</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$stop</span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.</span><span class="support function"><span>HOW</span></span><span>.mixin(</span><span class="variable language perl6"><span>self</span></span><span>,&nbsp;startstop.</span><span class="support function"><span>HOW</span></span><span>.curry(startstop,&nbsp;</span><span class="variable other basic perl6"><span>$start</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$stop</span></span><span>));</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>method</span></span><span>&nbsp;unbalanced(</span><span class="variable other basic perl6"><span>$stop</span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.</span><span class="support function"><span>HOW</span></span><span>.mixin(</span><span class="variable language perl6"><span>self</span></span><span>,&nbsp;stop.</span><span class="support function"><span>HOW</span></span><span>.curry(stop,&nbsp;</span><span class="variable other basic perl6"><span>$stop</span></span><span>));</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;starter&nbsp;{&nbsp;&lt;!&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;stopper&nbsp;{&nbsp;&lt;!&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>%quote_lang_cache</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>method</span></span><span>&nbsp;quote_lang(</span><span class="variable other basic perl6"><span>$l</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$start</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$stop</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>@base_tweaks</span></span><span>?,&nbsp;</span><span class="variable other basic perl6"><span>@extra_tweaks</span></span><span>?)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>sub</span></span><span>&nbsp;lang_key()&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>@keybits</span></span><span>&nbsp;:=&nbsp;[</span><span class="variable other basic perl6"><span>$l</span></span><span>.</span><span class="support function"><span>HOW</span></span><span>.</span><span class="support function"><span>name</span></span><span>(</span><span class="variable other basic perl6"><span>$l</span></span><span>),&nbsp;</span><span class="variable other basic perl6"><span>$start</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$stop</span></span><span>];</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control repeat perl6"><span>for</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>@base_tweaks</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>@keybits</span></span><span>.</span><span class="support function"><span>push</span></span><span>(</span><span class="variable other basic perl6"><span>$_</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control repeat perl6"><span>for</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>@extra_tweaks</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$_</span></span><span>[0]&nbsp;</span><span class="keyword operator perl6"><span>eq</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>to</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control flowcontrol perl6"><span>return</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>NOCACHE</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>@keybits</span></span><span>.</span><span class="support function"><span>push</span></span><span>(</span><span class="variable other basic perl6"><span>$_</span></span><span>[0]&nbsp;~&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>=</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;~&nbsp;</span><span class="variable other basic perl6"><span>$_</span></span><span>[1]);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nqp::</span><span class="support function"><span>join</span></span><span>(</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>\0</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>@keybits</span></span><span>)</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>sub</span></span><span>&nbsp;con_lang()&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$lang</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$l</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control repeat perl6"><span>for</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>@base_tweaks</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$lang</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$lang</span></span><span>.</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>tweak_$_</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>(1);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control repeat perl6"><span>for</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>@extra_tweaks</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$t</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$_</span></span><span>[0];</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;nqp::</span><span class="support function"><span>can</span></span><span>(</span><span class="variable other basic perl6"><span>$lang</span></span><span>,&nbsp;</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>tweak_$t</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$lang</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$lang</span></span><span>.</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>tweak_$t</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>(</span><span class="variable other basic perl6"><span>$_</span></span><span>[1]);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>else</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.sorry(</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>Unrecognized&nbsp;adverb:&nbsp;:$t</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$start</span></span><span>&nbsp;</span><span class="keyword operator perl6"><span>ne</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$stop</span></span><span>&nbsp;??&nbsp;</span><span class="variable other basic perl6"><span>$lang</span></span><span>.balanced(</span><span class="variable other basic perl6"><span>$start</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$stop</span></span><span>)</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;!!&nbsp;</span><span class="variable other basic perl6"><span>$lang</span></span><span>.unbalanced(</span><span class="variable other basic perl6"><span>$stop</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;Get&nbsp;language&nbsp;from&nbsp;cache&nbsp;or&nbsp;derive&nbsp;it.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$key</span></span><span>&nbsp;:=&nbsp;lang_key();</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nqp::ifnull(</span><span class="variable other basic perl6"><span>%quote_lang_cache</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>%quote_lang_cache</span></span><span>&nbsp;:=&nbsp;nqp::hash());</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nqp::existskey(</span><span class="variable other basic perl6"><span>%quote_lang_cache</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$key</span></span><span>)&nbsp;&amp;&amp;&nbsp;</span><span class="variable other basic perl6"><span>$key</span></span><span>&nbsp;</span><span class="keyword operator perl6"><span>ne</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>NOCACHE</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;??&nbsp;</span><span class="variable other basic perl6"><span>%quote_lang_cache</span></span><span>{</span><span class="variable other basic perl6"><span>$key</span></span><span>}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;!!&nbsp;(</span><span class="variable other basic perl6"><span>%quote_lang_cache</span></span><span>{</span><span class="variable other basic perl6"><span>$key</span></span><span>}&nbsp;:=&nbsp;con_lang());</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;babble(</span><span class="variable other basic perl6"><span>$l</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>@base_tweaks</span></span><span>?)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>@extra_tweaks</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.ws&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;&lt;quotepair&gt;&nbsp;&lt;.ws&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$kv</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$&lt;quotepair</span></span><span>&gt;[-1].ast;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$k</span></span><span>&nbsp;&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$kv</span></span><span>.named;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;nqp::istype(</span><span class="variable other basic perl6"><span>$kv</span></span><span>,&nbsp;QAST::Stmts)&nbsp;||&nbsp;nqp::istype(</span><span class="variable other basic perl6"><span>$kv</span></span><span>,&nbsp;QAST::Stmt)&nbsp;&amp;&amp;&nbsp;+@(</span><span class="variable other basic perl6"><span>$kv</span></span><span>)&nbsp;==&nbsp;1&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$kv</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$kv</span></span><span>[0];</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$v</span></span><span>&nbsp;:=&nbsp;nqp::istype(</span><span class="variable other basic perl6"><span>$kv</span></span><span>,&nbsp;QAST::IVal)</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;??&nbsp;</span><span class="variable other basic perl6"><span>$kv</span></span><span>.</span><span class="support function"><span>value</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;!!&nbsp;</span><span class="variable other basic perl6"><span>$kv</span></span><span>.has_compile_time_value</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;??&nbsp;</span><span class="variable other basic perl6"><span>$kv</span></span><span>.compile_time_value</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;!!&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.panic(</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>Invalid&nbsp;adverb&nbsp;value&nbsp;for&nbsp;</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>&nbsp;~&nbsp;</span><span class="variable other basic perl6"><span>$&lt;quotepair</span></span><span>&gt;[-1].</span><span class="support type perl6"><span>Str</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nqp::</span><span class="support function"><span>push</span></span><span>(</span><span class="variable other basic perl6"><span>@extra_tweaks</span></span><span>,&nbsp;[</span><span class="variable other basic perl6"><span>$k</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$v</span></span><span>]);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]*</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$&lt;B</span></span><span>&gt;=[&lt;?&gt;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;Work&nbsp;out&nbsp;the&nbsp;delimeters.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$c</span></span><span>&nbsp;:=&nbsp;$/.CURSOR;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>@delims</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$c</span></span><span>.peek_delimiters(</span><span class="variable other basic perl6"><span>$c</span></span><span>.target,&nbsp;</span><span class="variable other basic perl6"><span>$c</span></span><span>.</span><span class="support function"><span>pos</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$start</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>@delims</span></span><span>[0];</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$stop</span></span><span>&nbsp;&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>@delims</span></span><span>[1];</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;Get&nbsp;the&nbsp;language.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$lang</span></span><span>&nbsp;:=&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.quote_lang(</span><span class="variable other basic perl6"><span>$l</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$start</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$stop</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>@base_tweaks</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>@extra_tweaks</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$&lt;B</span></span><span>&gt;.</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>!make</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>([</span><span class="variable other basic perl6"><span>$lang</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$start</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$stop</span></span><span>]);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>@herestub_queue</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="keyword other module perl6"><span>class</span></span><span>&nbsp;Herestub&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>has</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$!delim</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>has</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$!orignode</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>has</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$!lang</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>method</span></span><span>&nbsp;delim()&nbsp;{&nbsp;</span><span class="variable other basic perl6"><span>$!delim</span></span><span>&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>method</span></span><span>&nbsp;orignode()&nbsp;{&nbsp;</span><span class="variable other basic perl6"><span>$!orignode</span></span><span>&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>method</span></span><span>&nbsp;lang()&nbsp;{&nbsp;</span><span class="variable other basic perl6"><span>$!lang</span></span><span>&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword other module perl6"><span>role</span></span><span>&nbsp;herestop&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;starter&nbsp;{&nbsp;&lt;!&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;stopper&nbsp;{&nbsp;^^&nbsp;{}&nbsp;</span><span class="variable other basic perl6"><span>$&lt;ws</span></span><span>&gt;=(\h*)&nbsp;</span><span class="variable other basic perl6"><span>$*DELIM</span></span><span>&nbsp;\h*&nbsp;$$&nbsp;[\r\n&nbsp;|&nbsp;\v]?&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>method</span></span><span>&nbsp;heredoc&nbsp;()&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>@herestub_queue</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$here</span></span><span>&nbsp;:=&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>!cursor_start_cur</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>();</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$here</span></span><span>.</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>!cursor_pos</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>(</span><span class="variable language perl6"><span>self</span></span><span>.</span><span class="support function"><span>pos</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control repeat perl6"><span>while</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>@herestub_queue</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$herestub</span></span><span>&nbsp;:=&nbsp;nqp::</span><span class="support function"><span>shift</span></span><span>(</span><span class="variable other basic perl6"><span>@herestub_queue</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*DELIM</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$herestub</span></span><span>.delim;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$lang</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$herestub</span></span><span>.lang.</span><span class="support function"><span>HOW</span></span><span>.mixin(</span><span class="variable other basic perl6"><span>$herestub</span></span><span>.lang,&nbsp;herestop);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$doc</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$here</span></span><span>.nibble(</span><span class="variable other basic perl6"><span>$lang</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$doc</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;Match&nbsp;stopper.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$stop</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$lang</span></span><span>.</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>!cursor_init</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>(</span><span class="variable language perl6"><span>self</span></span><span>.orig(),&nbsp;:p(</span><span class="variable other basic perl6"><span>$doc</span></span><span>.</span><span class="support function"><span>pos</span></span><span>),&nbsp;:shared(</span><span class="variable language perl6"><span>self</span></span><span>.</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>!shared</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>())).stopper();</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>unless</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$stop</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.panic(</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>Ending&nbsp;delimiter&nbsp;$*DELIM&nbsp;not&nbsp;found</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$here</span></span><span>.</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>!cursor_pos</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>(</span><span class="variable other basic perl6"><span>$stop</span></span><span>.</span><span class="support function"><span>pos</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;Get&nbsp;it&nbsp;trimmed&nbsp;and&nbsp;AST&nbsp;updated.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*ACTIONS</span></span><span>.trim_heredoc(</span><span class="variable other basic perl6"><span>$doc</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$stop</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$herestub</span></span><span>.orignode.MATCH.ast);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>else</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.panic(</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>Ending&nbsp;delimiter&nbsp;$*DELIM&nbsp;not&nbsp;found</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$here</span></span><span>.</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>!cursor_pass</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>(</span><span class="variable other basic perl6"><span>$here</span></span><span>.</span><span class="support function"><span>pos</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$here</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>else</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable language perl6"><span>self</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>method</span></span><span>&nbsp;queue_heredoc(</span><span class="variable other basic perl6"><span>$delim</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$lang</span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nqp::ifnull(</span><span class="variable other basic perl6"><span>@herestub_queue</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>@herestub_queue</span></span><span>&nbsp;:=&nbsp;[]);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nqp::</span><span class="support function"><span>push</span></span><span>(</span><span class="variable other basic perl6"><span>@herestub_queue</span></span><span>,&nbsp;Herestub.</span><span class="support function"><span>new</span></span><span>(:</span><span class="variable other basic perl6"><span>$delim</span></span><span>,&nbsp;:</span><span class="variable other basic perl6"><span>$lang</span></span><span>,&nbsp;:orignode(</span><span class="variable language perl6"><span>self</span></span><span>)));</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control flowcontrol perl6"><span>return</span></span><span>&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;quibble(</span><span class="variable other basic perl6"><span>$l</span></span><span>,&nbsp;*</span><span class="variable other basic perl6"><span>@base_tweaks</span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$lang</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$start</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$stop</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;babble(</span><span class="variable other basic perl6"><span>$l</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>@base_tweaks</span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$B</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$&lt;babble</span></span><span>&gt;&lt;B&gt;.ast;&nbsp;</span><span class="variable other basic perl6"><span>$lang</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$B</span></span><span>[0];&nbsp;</span><span class="variable other basic perl6"><span>$start</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$B</span></span><span>[1];&nbsp;</span><span class="variable other basic perl6"><span>$stop</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$B</span></span><span>[2];&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$start</span></span><span>&nbsp;&lt;nibble(</span><span class="variable other basic perl6"><span>$lang</span></span><span>)&gt;&nbsp;[&nbsp;</span><span class="variable other basic perl6"><span>$stop</span></span><span>&nbsp;||&nbsp;{&nbsp;$/.CURSOR.panic(</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>Couldn&#39;t&nbsp;find&nbsp;terminator&nbsp;$stop</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>)&nbsp;}&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nqp::</span><span class="support function"><span>can</span></span><span>(</span><span class="variable other basic perl6"><span>$lang</span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>herelang</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&nbsp;&amp;&amp;&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.queue_heredoc(</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.nibble_to_str($/,&nbsp;</span><span class="variable other basic perl6"><span>$&lt;nibble</span></span><span>&gt;.ast[1],&nbsp;-&gt;&nbsp;{&nbsp;</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>Stopper&nbsp;&#39;</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>&nbsp;~&nbsp;</span><span class="variable other basic perl6"><span>$&lt;nibble</span></span><span>&gt;&nbsp;~&nbsp;</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>&#39;&nbsp;too&nbsp;complex&nbsp;for&nbsp;heredoc</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>&nbsp;}),</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$lang</span></span><span>.herelang)</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>method</span></span><span>&nbsp;nibble(</span><span class="variable other basic perl6"><span>$lang</span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$lang_cursor</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$lang</span></span><span>.</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>!cursor_init</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>(</span><span class="variable language perl6"><span>self</span></span><span>.orig(),&nbsp;:p(</span><span class="variable language perl6"><span>self</span></span><span>.</span><span class="support function"><span>pos</span></span><span>()),&nbsp;:shared(</span><span class="variable language perl6"><span>self</span></span><span>.</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>!shared</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>()));</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*ACTIONS</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control repeat perl6"><span>for</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>%*LANG</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;nqp::istype(</span><span class="variable other basic perl6"><span>$lang</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$_</span></span><span>.</span><span class="support function"><span>value</span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*ACTIONS</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>%*LANG</span></span><span>{</span><span class="variable other basic perl6"><span>$_</span></span><span>.</span><span class="support function"><span>key</span></span><span>&nbsp;~&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>-actions</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>};</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control flowcontrol perl6"><span>last</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$lang_cursor</span></span><span>.nibbler();</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>method</span></span><span>&nbsp;panic(*</span><span class="variable other basic perl6"><span>@args</span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.typed_panic(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>X::Comp::AdHoc</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;payload&nbsp;=&gt;&nbsp;nqp::</span><span class="support function"><span>join</span></span><span>(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>@args</span></span><span>))</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>method</span></span><span>&nbsp;sorry(*</span><span class="variable other basic perl6"><span>@args</span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.typed_sorry(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>X::Comp::AdHoc</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;payload&nbsp;=&gt;&nbsp;nqp::</span><span class="support function"><span>join</span></span><span>(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>@args</span></span><span>))</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>method</span></span><span>&nbsp;worry(*</span><span class="variable other basic perl6"><span>@args</span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.typed_worry(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>X::Comp::AdHoc</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;payload&nbsp;=&gt;&nbsp;nqp::</span><span class="support function"><span>join</span></span><span>(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>@args</span></span><span>))</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>method</span></span><span>&nbsp;typed_panic(</span><span class="variable other basic perl6"><span>$type_str</span></span><span>,&nbsp;*</span><span class="variable other basic perl6"><span>%opts</span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.throw(</span><span class="variable language perl6"><span>self</span></span><span>.MATCH(),&nbsp;nqp::</span><span class="support function"><span>split</span></span><span>(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>::</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$type_str</span></span><span>),&nbsp;|</span><span class="variable other basic perl6"><span>%opts</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>method</span></span><span>&nbsp;typed_sorry(</span><span class="variable other basic perl6"><span>$type_str</span></span><span>,&nbsp;*</span><span class="variable other basic perl6"><span>%opts</span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;+</span><span class="variable other basic perl6"><span>@*SORROWS</span></span><span>&nbsp;+&nbsp;1&nbsp;==&nbsp;</span><span class="variable other basic perl6"><span>$*SORRY_LIMIT</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.throw(</span><span class="variable language perl6"><span>self</span></span><span>.MATCH(),&nbsp;nqp::</span><span class="support function"><span>split</span></span><span>(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>::</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$type_str</span></span><span>),&nbsp;|</span><span class="variable other basic perl6"><span>%opts</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>else</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>@*SORROWS</span></span><span>.</span><span class="support function"><span>push</span></span><span>(</span><span class="variable other basic perl6"><span>$*W</span></span><span>.typed_exception(</span><span class="variable language perl6"><span>self</span></span><span>.MATCH(),&nbsp;nqp::</span><span class="support function"><span>split</span></span><span>(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>::</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$type_str</span></span><span>),&nbsp;|</span><span class="variable other basic perl6"><span>%opts</span></span><span>));</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable language perl6"><span>self</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>method</span></span><span>&nbsp;typed_worry(</span><span class="variable other basic perl6"><span>$type_str</span></span><span>,&nbsp;*</span><span class="variable other basic perl6"><span>%opts</span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>@*WORRIES</span></span><span>.</span><span class="support function"><span>push</span></span><span>(</span><span class="variable other basic perl6"><span>$*W</span></span><span>.typed_exception(</span><span class="variable language perl6"><span>self</span></span><span>.MATCH(),&nbsp;nqp::</span><span class="support function"><span>split</span></span><span>(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>::</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$type_str</span></span><span>),&nbsp;|</span><span class="variable other basic perl6"><span>%opts</span></span><span>));</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable language perl6"><span>self</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>method</span></span><span>&nbsp;malformed(</span><span class="variable other basic perl6"><span>$what</span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.typed_panic(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>X::Syntax::Malformed</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;:</span><span class="variable other basic perl6"><span>$what</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>method</span></span><span>&nbsp;missing(</span><span class="variable other basic perl6"><span>$what</span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.typed_panic(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>X::Syntax::Missing</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;:</span><span class="variable other basic perl6"><span>$what</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>method</span></span><span>&nbsp;NYI(</span><span class="variable other basic perl6"><span>$feature</span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.typed_panic(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>X::Comp::NYI</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;:</span><span class="variable other basic perl6"><span>$feature</span></span><span>)</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>method</span></span><span>&nbsp;EXPR_nonassoc(</span><span class="variable other basic perl6"><span>$cur</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$left</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$right</span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.typed_panic(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>X::Syntax::NonAssociative</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;:left(~</span><span class="variable other basic perl6"><span>$left</span></span><span>),&nbsp;:right(~</span><span class="variable other basic perl6"><span>$right</span></span><span>));</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;&quot;when&quot;&nbsp;arg&nbsp;assumes&nbsp;more&nbsp;things&nbsp;will&nbsp;become&nbsp;obsolete&nbsp;after&nbsp;Perl&nbsp;6&nbsp;comes&nbsp;out...</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>method</span></span><span>&nbsp;obs(</span><span class="variable other basic perl6"><span>$old</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$new</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$when</span></span><span>&nbsp;=&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>in&nbsp;Perl&nbsp;6</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.throw(</span><span class="variable language perl6"><span>self</span></span><span>.MATCH(),&nbsp;[</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>X</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>Obsolete</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>],</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;old&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&gt;&nbsp;</span><span class="variable other basic perl6"><span>$old</span></span><span>,</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;replacement&nbsp;=&gt;&nbsp;</span><span class="variable other basic perl6"><span>$new</span></span><span>,</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control flowcontrol perl6"><span>when</span></span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&gt;&nbsp;</span><span class="variable other basic perl6"><span>$when</span></span><span>,</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>method</span></span><span>&nbsp;obsvar(</span><span class="variable other basic perl6"><span>$name</span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.throw(</span><span class="variable language perl6"><span>self</span></span><span>.MATCH(),&nbsp;[</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>X</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>Syntax</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>Perl5Var</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>],&nbsp;:</span><span class="variable other basic perl6"><span>$name</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>method</span></span><span>&nbsp;sorryobs(</span><span class="variable other basic perl6"><span>$old</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$new</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$when</span></span><span>&nbsp;=&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>in&nbsp;Perl&nbsp;6</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.throw(</span><span class="variable language perl6"><span>self</span></span><span>.MATCH(),&nbsp;[</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>X</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>Obsolete</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>],</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;old&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&gt;&nbsp;</span><span class="variable other basic perl6"><span>$old</span></span><span>,</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;replacement&nbsp;=&gt;&nbsp;</span><span class="variable other basic perl6"><span>$new</span></span><span>,</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control flowcontrol perl6"><span>when</span></span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&gt;&nbsp;</span><span class="variable other basic perl6"><span>$when</span></span><span>,</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>method</span></span><span>&nbsp;worryobs(</span><span class="variable other basic perl6"><span>$old</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$new</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$when</span></span><span>&nbsp;=&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>in&nbsp;Perl&nbsp;6</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.typed_worry(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>X::Obsolete</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;old&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&gt;&nbsp;</span><span class="variable other basic perl6"><span>$old</span></span><span>,</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;replacement&nbsp;=&gt;&nbsp;</span><span class="variable other basic perl6"><span>$new</span></span><span>,</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control flowcontrol perl6"><span>when</span></span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&gt;&nbsp;</span><span class="variable other basic perl6"><span>$when</span></span><span>,</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>method</span></span><span>&nbsp;check_variable(</span><span class="variable other basic perl6"><span>$var</span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$varast</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$var</span></span><span>.ast;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;nqp::istype(</span><span class="variable other basic perl6"><span>$varast</span></span><span>,&nbsp;QAST::Op)&nbsp;&amp;&amp;&nbsp;</span><span class="variable other basic perl6"><span>$varast</span></span><span>.op&nbsp;</span><span class="keyword operator perl6"><span>eq</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>ifnull</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$varast</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$varast</span></span><span>[0];</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;!</span><span class="variable other basic perl6"><span>$*IN_DECL</span></span><span>&nbsp;&amp;&amp;&nbsp;nqp::istype(</span><span class="variable other basic perl6"><span>$varast</span></span><span>,&nbsp;QAST::Var)&nbsp;&amp;&amp;&nbsp;</span><span class="variable other basic perl6"><span>$varast</span></span><span>.scope&nbsp;</span><span class="keyword operator perl6"><span>eq</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>lexical</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$name</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$varast</span></span><span>.</span><span class="support function"><span>name</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$name</span></span><span>&nbsp;</span><span class="keyword operator perl6"><span>ne</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>%_</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&amp;&amp;&nbsp;</span><span class="variable other basic perl6"><span>$name</span></span><span>&nbsp;</span><span class="keyword operator perl6"><span>ne</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>@_</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&amp;&amp;&nbsp;!</span><span class="variable other basic perl6"><span>$*W</span></span><span>.is_lexical(</span><span class="variable other basic perl6"><span>$name</span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$var</span></span><span>&lt;sigil&gt;&nbsp;</span><span class="keyword operator perl6"><span>ne</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>&amp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;!</span><span class="variable other basic perl6"><span>$*STRICT</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.auto_declare_var(</span><span class="variable other basic perl6"><span>$var</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>else</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>@suggestions</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.suggest_lexicals(</span><span class="variable other basic perl6"><span>$name</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;nqp::</span><span class="support function"><span>can</span></span><span>(</span><span class="variable other basic perl6"><span>$*PACKAGE</span></span><span>.</span><span class="support function"><span>HOW</span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>get_attribute_for_usage</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$sigil</span></span><span>&nbsp;&nbsp;&nbsp;&nbsp;:=&nbsp;nqp::</span><span class="support function"><span>substr</span></span><span>(</span><span class="variable other basic perl6"><span>$name</span></span><span>,&nbsp;0,&nbsp;1);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$twigil</span></span><span>&nbsp;&nbsp;&nbsp;:=&nbsp;nqp::concat(</span><span class="variable other basic perl6"><span>$sigil</span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>!</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$basename</span></span><span>&nbsp;:=&nbsp;nqp::</span><span class="support function"><span>substr</span></span><span>(</span><span class="variable other basic perl6"><span>$name</span></span><span>,&nbsp;1,&nbsp;nqp::</span><span class="support function"><span>chars</span></span><span>(</span><span class="variable other basic perl6"><span>$name</span></span><span>)&nbsp;-&nbsp;1);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$attrname</span></span><span>&nbsp;:=&nbsp;nqp::concat(</span><span class="variable other basic perl6"><span>$twigil</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$basename</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$attribute</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*PACKAGE</span></span><span>.</span><span class="support function"><span>HOW</span></span><span>.get_attribute_for_usage(</span><span class="variable other basic perl6"><span>$*PACKAGE</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$attrname</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nqp::</span><span class="support function"><span>push</span></span><span>(</span><span class="variable other basic perl6"><span>@suggestions</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$attrname</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="meta function perl6"><span>CATCH</span></span><span>&nbsp;{}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.throw(</span><span class="variable other basic perl6"><span>$var</span></span><span>,&nbsp;[</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>X</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>Undeclared</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>],&nbsp;symbol&nbsp;=&gt;&nbsp;</span><span class="variable other basic perl6"><span>$name</span></span><span>,&nbsp;suggestions&nbsp;=&gt;&nbsp;</span><span class="variable other basic perl6"><span>@suggestions</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>else</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$var</span></span><span>.CURSOR.add_mystery(</span><span class="variable other basic perl6"><span>$name</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$var</span></span><span>.</span><span class="support function"><span>to</span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>var</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>else</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$lex</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.cur_lexpad();</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>%sym</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$lex</span></span><span>.symbol(</span><span class="variable other basic perl6"><span>$name</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>%sym</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>%sym</span></span><span>&lt;used&gt;&nbsp;:=&nbsp;1;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>else</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;Add&nbsp;mention-only&nbsp;record&nbsp;(used&nbsp;to&nbsp;poison&nbsp;outer</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;usages&nbsp;and&nbsp;disambiguate&nbsp;hashes/blocks&nbsp;by&nbsp;use&nbsp;of</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;$_&nbsp;when&nbsp;$*IMPLICIT&nbsp;is&nbsp;in&nbsp;force).</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$au</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$lex</span></span><span>.ann(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>also_uses</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$lex</span></span><span>.annotate(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>also_uses</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$au</span></span><span>&nbsp;:=&nbsp;{})&nbsp;</span><span class="keyword control conditional perl6"><span>unless</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$au</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$au</span></span><span>{</span><span class="variable other basic perl6"><span>$name</span></span><span>}&nbsp;:=&nbsp;1;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable language perl6"><span>self</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span class="keyword other module perl6"><span>grammar</span></span><span>&nbsp;Perl6::Grammar&nbsp;</span><span class="storage modifier type constraints perl6"><span>is</span></span><span>&nbsp;HLL::Grammar&nbsp;does&nbsp;STD&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$sc_id</span></span><span>&nbsp;:=&nbsp;0;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>method</span></span><span>&nbsp;TOP()&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;Language&nbsp;braid.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>%*LANG</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>%*LANG</span></span><span>&lt;</span><span class="support type perl6"><span>Regex</span></span><span>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:=&nbsp;Perl6::RegexGrammar;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>%*LANG</span></span><span>&lt;</span><span class="support type perl6"><span>Regex</span></span><span>-actions&gt;&nbsp;&nbsp;&nbsp;:=&nbsp;Perl6::RegexActions;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>%*LANG</span></span><span>&lt;P5Regex&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:=&nbsp;Perl6::P5RegexGrammar;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>%*LANG</span></span><span>&lt;P5Regex-actions&gt;&nbsp;:=&nbsp;Perl6::P5RegexActions;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>%*LANG</span></span><span>&lt;Q&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:=&nbsp;Perl6::QGrammar;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>%*LANG</span></span><span>&lt;Q-actions&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:=&nbsp;Perl6::QActions;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>%*LANG</span></span><span>&lt;MAIN&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:=&nbsp;Perl6::Grammar;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>%*LANG</span></span><span>&lt;MAIN-actions&gt;&nbsp;&nbsp;&nbsp;&nbsp;:=&nbsp;Perl6::Actions;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;Package&nbsp;declarator&nbsp;to&nbsp;meta-package&nbsp;mapping.&nbsp;Starts&nbsp;pretty&nbsp;much&nbsp;empty;</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;we&nbsp;get&nbsp;the&nbsp;mappings&nbsp;either&nbsp;imported&nbsp;or&nbsp;supplied&nbsp;by&nbsp;the&nbsp;setting.&nbsp;One</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;issue&nbsp;is&nbsp;that&nbsp;we&nbsp;may&nbsp;have&nbsp;no&nbsp;setting&nbsp;to&nbsp;provide&nbsp;them,&nbsp;e.g.&nbsp;when&nbsp;we</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;compile&nbsp;the&nbsp;setting,&nbsp;but&nbsp;it&nbsp;still&nbsp;wants&nbsp;some&nbsp;kinda&nbsp;package.&nbsp;We&nbsp;just</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;fudge&nbsp;in&nbsp;knowhow&nbsp;for&nbsp;that.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>%*HOW</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>%*HOWUSE</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>%*HOW</span></span><span>&lt;knowhow&gt;&nbsp;:=&nbsp;nqp::knowhow();</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>%*HOW</span></span><span>&lt;</span><span class="keyword other module perl6"><span>package</span></span><span>&gt;&nbsp;:=&nbsp;nqp::knowhow();</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;Symbol&nbsp;table&nbsp;and&nbsp;serialization&nbsp;context&nbsp;builder&nbsp;-&nbsp;keeps&nbsp;track&nbsp;of</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;objects&nbsp;that&nbsp;cross&nbsp;the&nbsp;compile-time/run-time&nbsp;boundary&nbsp;that&nbsp;are</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;associated&nbsp;with&nbsp;this&nbsp;compilation&nbsp;unit.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$file</span></span><span>&nbsp;:=&nbsp;nqp::getlexdyn(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$?FILES</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$source_id</span></span><span>&nbsp;:=&nbsp;nqp::sha1(</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nqp::</span><span class="support function"><span>defined</span></span><span>(</span><span class="variable other basic perl6"><span>%*COMPILING</span></span><span>&lt;</span><span class="variable other basic perl6"><span>%?OPTIONS</span></span><span>&gt;&lt;outer_ctx&gt;)</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;??&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.target()&nbsp;~&nbsp;</span><span class="variable other basic perl6"><span>$sc_id</span></span><span>++</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;!!&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.target());</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>&nbsp;:=&nbsp;nqp::isnull(</span><span class="variable other basic perl6"><span>$file</span></span><span>)&nbsp;??</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Perl6::World.</span><span class="support function"><span>new</span></span><span>(:handle(</span><span class="variable other basic perl6"><span>$source_id</span></span><span>))&nbsp;!!</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Perl6::World.</span><span class="support function"><span>new</span></span><span>(:handle(</span><span class="variable other basic perl6"><span>$source_id</span></span><span>),&nbsp;:description(</span><span class="variable other basic perl6"><span>$file</span></span><span>));</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.add_initializations();</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$cursor</span></span><span>&nbsp;:=&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.comp_unit;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.pop_lexpad();&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;UNIT</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.pop_lexpad();&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;UNIT_OUTER</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$cursor</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>##&nbsp;Lexer&nbsp;stuff</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;apostrophe&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;[&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>&nbsp;\-&nbsp;]&gt;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;token&nbsp;identifier&nbsp;{</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.ident&gt;&nbsp;[&nbsp;&lt;.apostrophe&gt;&nbsp;&lt;.ident&gt;&nbsp;]*</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;token&nbsp;name&nbsp;{</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;identifier&gt;&nbsp;&lt;morename&gt;*</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;morename&gt;+</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;token&nbsp;morename&nbsp;{</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:my&nbsp;$*QSIGIL&nbsp;:=&nbsp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>::</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;&nbsp;&lt;?before&nbsp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>&nbsp;|&nbsp;&lt;alpha&gt;&nbsp;&gt;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;identifier&gt;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;:dba(</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>indirect&nbsp;</span><span class="support function"><span>name</span></span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>)&nbsp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>&nbsp;~&nbsp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>&nbsp;&lt;EXPR&gt;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;&lt;?before&nbsp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>::</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>&gt;&nbsp;&lt;.typed_panic:&nbsp;&quot;X::Syntax::Name::Null&quot;&gt;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]?</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;token&nbsp;longname&nbsp;{</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;name&gt;&nbsp;{}&nbsp;[&nbsp;&lt;?before&nbsp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>:</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>&nbsp;&lt;+alpha+[\&lt;&nbsp;\[&nbsp;\«&nbsp;]&gt;&gt;&nbsp;&lt;colonpair&gt;&nbsp;]*</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;token&nbsp;deflongname&nbsp;{</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:dba(</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span class="support function"><span>new</span></span><span>&nbsp;</span><span class="support function"><span>name</span></span><span>&nbsp;</span><span class="support function"><span>to</span></span><span>&nbsp;be&nbsp;</span><span class="support function"><span>defined</span></span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>)</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;name&gt;&nbsp;&lt;colonpair&gt;*</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;token&nbsp;subshortname&nbsp;{</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;desigilname&gt;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;token&nbsp;sublongname&nbsp;{</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;subshortname&gt;&nbsp;&lt;sigterm&gt;?</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;token&nbsp;defterm&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;XXX&nbsp;this&nbsp;is&nbsp;probably&nbsp;too&nbsp;general</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:dba(</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span class="support function"><span>new</span></span><span>&nbsp;term&nbsp;</span><span class="support function"><span>to</span></span><span>&nbsp;be&nbsp;</span><span class="support function"><span>defined</span></span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>)</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;identifier&gt;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;colonpair&gt;+</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;$&lt;colonpair&gt;[0]&lt;coloncircumfix&gt;&nbsp;-&gt;&nbsp;$cf&nbsp;{</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;my&nbsp;$category&nbsp;:=&nbsp;$&lt;identifier&gt;.Str;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;my&nbsp;$opname&nbsp;:=&nbsp;$cf&lt;circumfix&gt;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;??&nbsp;$*W.colonpair_nibble_to_str($/,&nbsp;$cf&lt;circumfix&gt;&lt;nibble&gt;)</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;!!&nbsp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;my&nbsp;$canname&nbsp;&nbsp;:=&nbsp;$category&nbsp;~&nbsp;&quot;:sym&lt;&quot;&nbsp;~&nbsp;$opname&nbsp;~&nbsp;&quot;&gt;&quot;;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;my&nbsp;$termname&nbsp;:=&nbsp;$category&nbsp;~&nbsp;&quot;:&lt;&quot;&nbsp;~&nbsp;$opname&nbsp;~&nbsp;&quot;&gt;&quot;;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.add_categorical($category,&nbsp;$opname,&nbsp;$canname,&nbsp;$termname,&nbsp;:defterm);</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;?&gt;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;token&nbsp;module_name&nbsp;{</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;longname&gt;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;&lt;?[[]&gt;&nbsp;:dba(</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>generic&nbsp;</span><span class="keyword other module perl6"><span>role</span></span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>)&nbsp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>[</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>&nbsp;~&nbsp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>]</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>&nbsp;&lt;arglist&gt;&nbsp;]?</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;token&nbsp;end_keyword&nbsp;{</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!before&nbsp;&lt;[&nbsp;\(&nbsp;</span><span class="constant character escape"><span>\\</span></span><span>&nbsp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;\-&nbsp;]&gt;&nbsp;||&nbsp;\h*&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>=&gt;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&gt;&nbsp;»</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;spacey&nbsp;{&nbsp;&lt;?[\</span><span class="keyword operator perl6"><span>s</span></span><span class="comment line number-sign perl6"><span>#]&gt;&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;ENDSTMT&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;\h*&nbsp;$$&nbsp;&lt;.ws&gt;&nbsp;&lt;?MARKER(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>endstmt</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;.unv&gt;?&nbsp;$$&nbsp;&lt;.ws&gt;&nbsp;&lt;?MARKER(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>endstmt</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]?</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;ws&nbsp;is&nbsp;highly&nbsp;performance&nbsp;sensitive.&nbsp;So,&nbsp;we&nbsp;check&nbsp;if&nbsp;we&nbsp;already&nbsp;marked&nbsp;it</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;at&nbsp;this&nbsp;point&nbsp;with&nbsp;a&nbsp;simple&nbsp;method,&nbsp;and&nbsp;only&nbsp;if&nbsp;that&nbsp;is&nbsp;not&nbsp;the&nbsp;case&nbsp;do</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;we&nbsp;bother&nbsp;doing&nbsp;any&nbsp;pattern&nbsp;matching.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>method</span></span><span>&nbsp;ws()&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.MARKED(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>ws</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable language perl6"><span>self</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>else</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>._ws()</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;_ws&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$old_highexpect</span></span><span>&nbsp;:=&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>!fresh_highexpect</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>();</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:dba(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>whitespace</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!ww&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;.vws&gt;&nbsp;&lt;.heredoc&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;.unv&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;.unsp&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]*</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;?MARKER(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>ws</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$stub</span></span><span>&nbsp;:=&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>!fresh_highexpect</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>();</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;unsp&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\\&nbsp;&lt;?</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;\</span><span class="keyword operator perl6"><span>s</span></span><span>&nbsp;|&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>#</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:dba(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>unspace</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;.vws&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;.unv&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;.unsp&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]*</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;vws&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:dba(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>vertical&nbsp;whitespace</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;\v</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>&lt;&lt;&lt;&lt;&lt;&lt;&lt;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;{}&nbsp;&lt;?</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;[.*?&nbsp;\v&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>=======</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>]:&nbsp;.*?&nbsp;\v&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>&gt;&gt;&gt;&gt;&gt;&gt;&gt;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&gt;&nbsp;&lt;.sorry:&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>Found&nbsp;a&nbsp;version&nbsp;control&nbsp;conflict&nbsp;marker</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&gt;&nbsp;\V*&nbsp;\v</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>=======</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;{}&nbsp;.*?&nbsp;\v&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>&gt;&gt;&gt;&gt;&gt;&gt;&gt;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;\V*&nbsp;\v&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;ignore&nbsp;second&nbsp;half</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]+</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;unv&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:dba(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>horizontal&nbsp;whitespace</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;\h+</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;\h*&nbsp;&lt;.comment&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;?</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;\h*&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>=</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;[&nbsp;\w&nbsp;|&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span class="constant character escape"><span>\\</span></span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>]&nbsp;&gt;&nbsp;^^&nbsp;&lt;.pod_content_toplevel&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>proto</span></span><span>&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;comment&nbsp;{&nbsp;&lt;...&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;comment:sym&lt;</span><span class="comment line number-sign perl6"><span>#&gt;&nbsp;{</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>#</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;{}&nbsp;\N*</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;comment:sym&lt;</span><span class="comment line number-sign perl6"><span>#`(...)&gt;&nbsp;{</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>#`</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&lt;?opener&gt;&nbsp;{}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;&lt;.quibble(</span><span class="variable other basic perl6"><span>%*LANG</span></span><span>&lt;Q&gt;)&gt;&nbsp;||&nbsp;&lt;.typed_panic:&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>X::Syntax::Comment::Embedded</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&gt;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;comment:sym&lt;</span><span class="comment line number-sign perl6"><span>#|(...)&gt;&nbsp;{</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>#|</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&lt;?opener&gt;&nbsp;&lt;attachment=.quibble(</span><span class="variable other basic perl6"><span>%*LANG</span></span><span>&lt;Q&gt;)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>unless</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*POD_BLOCKS_SEEN</span></span><span>{&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.</span><span class="support function"><span>from</span></span><span>()&nbsp;}&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*POD_BLOCKS_SEEN</span></span><span>{&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.</span><span class="support function"><span>from</span></span><span>()&nbsp;}&nbsp;:=&nbsp;1;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*DECLARATOR_DOCS</span></span><span>&nbsp;</span><span class="keyword operator perl6"><span>eq</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*DECLARATOR_DOCS</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$&lt;attachment</span></span><span>&gt;&lt;nibble&gt;;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span class="keyword control conditional perl6"><span>else</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*DECLARATOR_DOCS</span></span><span>&nbsp;:=&nbsp;nqp::concat(</span><span class="variable other basic perl6"><span>$*DECLARATOR_DOCS</span></span><span>,&nbsp;nqp::concat(</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span class="constant character escape perl6"><span>\n</span></span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$&lt;attachment</span></span><span>&gt;&lt;nibble&gt;));</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;comment:sym&lt;</span><span class="comment line number-sign perl6"><span>#|&gt;&nbsp;{</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>#|</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;\h+&nbsp;</span><span class="variable other basic perl6"><span>$&lt;attachment</span></span><span>&gt;=[\N*]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>unless</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*POD_BLOCKS_SEEN</span></span><span>{&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.</span><span class="support function"><span>from</span></span><span>()&nbsp;}&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*POD_BLOCKS_SEEN</span></span><span>{&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.</span><span class="support function"><span>from</span></span><span>()&nbsp;}&nbsp;:=&nbsp;1;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*DECLARATOR_DOCS</span></span><span>&nbsp;</span><span class="keyword operator perl6"><span>eq</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*DECLARATOR_DOCS</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$&lt;attachment</span></span><span>&gt;;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span class="keyword control conditional perl6"><span>else</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*DECLARATOR_DOCS</span></span><span>&nbsp;:=&nbsp;nqp::concat(</span><span class="variable other basic perl6"><span>$*DECLARATOR_DOCS</span></span><span>,&nbsp;nqp::concat(</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span class="constant character escape perl6"><span>\n</span></span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$&lt;attachment</span></span><span>&gt;));</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;comment:sym&lt;</span><span class="comment line number-sign perl6"><span>#=(...)&gt;&nbsp;{</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>#=</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&lt;?opener&gt;&nbsp;&lt;attachment=.quibble(</span><span class="variable other basic perl6"><span>%*LANG</span></span><span>&lt;Q&gt;)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.attach_trailing_docs(~</span><span class="variable other basic perl6"><span>$&lt;attachment</span></span><span>&gt;&lt;nibble&gt;);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;comment:sym&lt;</span><span class="comment line number-sign perl6"><span>#=&gt;&nbsp;{</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>#=</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;\h+&nbsp;</span><span class="variable other basic perl6"><span>$&lt;attachment</span></span><span>&gt;=[\N*]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.attach_trailing_docs(~</span><span class="variable other basic perl6"><span>$&lt;attachment</span></span><span>&gt;);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>method</span></span><span>&nbsp;attach_leading_docs()&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;~</span><span class="variable other basic perl6"><span>$*DOC</span></span><span>&nbsp;</span><span class="keyword operator perl6"><span>ne</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$cont</span></span><span>&nbsp;&nbsp;:=&nbsp;Perl6::Pod::serialize_aos(</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[Perl6::Pod::formatted_text(~</span><span class="variable other basic perl6"><span>$*DOC</span></span><span>)]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;).compile_time_value;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$block</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.add_constant(</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>Pod::Block::Declarator</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>type_new</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:nocache,&nbsp;:leading([</span><span class="variable other basic perl6"><span>$cont</span></span><span>]),</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*POD_BLOCK</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$block</span></span><span>.compile_time_value;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*POD_BLOCKS</span></span><span>.</span><span class="support function"><span>push</span></span><span>(</span><span class="variable other basic perl6"><span>$*POD_BLOCK</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable language perl6"><span>self</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>method</span></span><span>&nbsp;attach_trailing_docs(</span><span class="variable other basic perl6"><span>$doc</span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>unless</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*POD_BLOCKS_SEEN</span></span><span>{&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.</span><span class="support function"><span>from</span></span><span>()&nbsp;}&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*POD_BLOCKS_SEEN</span></span><span>{&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.</span><span class="support function"><span>from</span></span><span>()&nbsp;}&nbsp;:=&nbsp;1;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$pod_block</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$doc</span></span><span>&nbsp;</span><span class="keyword operator perl6"><span>ne</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$cont</span></span><span>&nbsp;&nbsp;:=&nbsp;Perl6::Pod::serialize_aos(</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[Perl6::Pod::formatted_text(</span><span class="variable other basic perl6"><span>$doc</span></span><span>)]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;).compile_time_value;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$block</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.add_constant(</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>Pod::Block::Declarator</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>type_new</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:nocache,&nbsp;:trailing([</span><span class="variable other basic perl6"><span>$cont</span></span><span>]),</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$pod_block</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$block</span></span><span>.compile_time_value;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>unless</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*PRECEDING_DECL</span></span><span>&nbsp;=:=&nbsp;Mu&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Perl6::Pod::document($/,&nbsp;</span><span class="variable other basic perl6"><span>$*PRECEDING_DECL</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$pod_block</span></span><span>,&nbsp;:trailing);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;pod_content_toplevel&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;pod_block&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>proto</span></span><span>&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;pod_content&nbsp;{&nbsp;&lt;...&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;pod_content:sym&lt;block&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;pod_newline&gt;*</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;pod_block&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;pod_newline&gt;*</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;any&nbsp;number&nbsp;of&nbsp;paragraphs&nbsp;of&nbsp;text</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;pod_content:sym&lt;text&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;pod_newline&gt;*</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;pod_textcontent&gt;+&nbsp;%&nbsp;&lt;pod_newline&gt;+</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;pod_newline&gt;*</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;not&nbsp;a&nbsp;block,&nbsp;just&nbsp;a&nbsp;directive</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;pod_content:sym&lt;config&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;pod_newline&gt;*</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;^^&nbsp;\h*&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>=config</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;\h+&nbsp;</span><span class="variable other basic perl6"><span>$&lt;type</span></span><span>&gt;=\S+&nbsp;&lt;pod_configuration&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;pod_newline&gt;+</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>proto</span></span><span>&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;pod_textcontent&nbsp;{&nbsp;&lt;...&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;text&nbsp;not&nbsp;being&nbsp;code</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;pod_textcontent:sym&lt;regular&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$&lt;spaces</span></span><span>&gt;=[&nbsp;\h*&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;?{&nbsp;</span><span class="variable other basic perl6"><span>$*POD_IN_CODE_BLOCK</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;!</span><span class="variable other basic perl6"><span>$*ALLOW_INLINE_CODE</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;(</span><span class="variable other basic perl6"><span>$&lt;spaces</span></span><span>&gt;.</span><span class="support function"><span>to</span></span><span>&nbsp;-&nbsp;</span><span class="variable other basic perl6"><span>$&lt;spaces</span></span><span>&gt;.</span><span class="support function"><span>from</span></span><span>)&nbsp;&lt;=&nbsp;</span><span class="variable other basic perl6"><span>$*VMARGIN</span></span><span>&nbsp;}&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$&lt;text</span></span><span>&gt;&nbsp;=&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\h*&nbsp;&lt;!</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>=</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;\w&gt;&nbsp;&lt;pod_string&gt;&nbsp;[&nbsp;&lt;pod_newline&gt;&nbsp;|&nbsp;$&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]&nbsp;+</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;pod_textcontent:sym&lt;code&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$&lt;spaces</span></span><span>&gt;=[&nbsp;\h*&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;?{&nbsp;!</span><span class="variable other basic perl6"><span>$*POD_IN_CODE_BLOCK</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;&amp;&nbsp;</span><span class="variable other basic perl6"><span>$*ALLOW_INLINE_CODE</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;&amp;&nbsp;(</span><span class="variable other basic perl6"><span>$&lt;spaces</span></span><span>&gt;.</span><span class="support function"><span>to</span></span><span>&nbsp;-&nbsp;</span><span class="variable other basic perl6"><span>$&lt;spaces</span></span><span>&gt;.</span><span class="support function"><span>from</span></span><span>)&nbsp;&gt;&nbsp;</span><span class="variable other basic perl6"><span>$*VMARGIN</span></span><span>&nbsp;}&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$&lt;text</span></span><span>&gt;&nbsp;=&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&lt;!</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>=</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;\w&gt;&nbsp;\N+]+&nbsp;%&nbsp;[&lt;pod_newline&gt;+&nbsp;</span><span class="variable other basic perl6"><span>$&lt;spaces</span></span><span>&gt;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;pod_formatting_code&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*POD_ALLOW_FCODES</span></span><span>&nbsp;:=&nbsp;nqp::getlexdyn(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$*POD_ALLOW_FCODES</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*POD_IN_FORMATTINGCODE</span></span><span>&nbsp;:=&nbsp;nqp::getlexdyn(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$*POD_IN_FORMATTINGCODE</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*POD_ANGLE_COUNT</span></span><span>&nbsp;:=&nbsp;nqp::getlexdyn(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$*POD_ANGLE_COUNT</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;?{&nbsp;</span><span class="variable other basic perl6"><span>$*POD_ALLOW_FCODES</span></span><span>&nbsp;}&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$endtag</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;code=[A..</span><span class="keyword operator perl6"><span>Z</span></span><span>]&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$&lt;begin-tag</span></span><span>&gt;=[</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>&lt;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>+&nbsp;&lt;![&lt;]&gt;&nbsp;|&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>«</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>]&nbsp;{&nbsp;</span><span class="variable other basic perl6"><span>$*POD_IN_FORMATTINGCODE</span></span><span>&nbsp;:=&nbsp;1&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;?{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$codenum</span></span><span>&nbsp;:=&nbsp;nqp::</span><span class="support function"><span>ord</span></span><span>(</span><span class="variable other basic perl6"><span>$&lt;code</span></span><span>&gt;.</span><span class="support type perl6"><span>Str</span></span><span>)&nbsp;-&nbsp;nqp::</span><span class="support function"><span>ord</span></span><span>(</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>A</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;!(</span><span class="variable other basic perl6"><span>$*POD_ALLOW_FCODES</span></span><span>&nbsp;+&amp;&nbsp;(2&nbsp;**&nbsp;</span><span class="variable other basic perl6"><span>$codenum</span></span><span>))&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span class="keyword control conditional perl6"><span>elsif</span></span><span>&nbsp;~</span><span class="variable other basic perl6"><span>$&lt;begin-tag</span></span><span>&gt;&nbsp;</span><span class="keyword operator perl6"><span>eq</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>«</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$endtag</span></span><span>&nbsp;:=&nbsp;</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>»</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*POD_ANGLE_COUNT</span></span><span>&nbsp;:=&nbsp;-1;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span class="keyword control conditional perl6"><span>else</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="support type perl6"><span>int</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$ct</span></span><span>&nbsp;:=&nbsp;nqp::</span><span class="support function"><span>chars</span></span><span>(</span><span class="variable other basic perl6"><span>$&lt;begin-tag</span></span><span>&gt;);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$endtag</span></span><span>&nbsp;:=&nbsp;nqp::</span><span class="keyword operator perl6"><span>x</span></span><span>(</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>&gt;</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$ct</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$rv</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*POD_ANGLE_COUNT</span></span><span>&nbsp;&lt;=&nbsp;0&nbsp;||&nbsp;</span><span class="variable other basic perl6"><span>$*POD_ANGLE_COUNT</span></span><span>&nbsp;&gt;=&nbsp;</span><span class="variable other basic perl6"><span>$ct</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*POD_ANGLE_COUNT</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$ct</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$rv</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$&lt;code</span></span><span>&gt;.</span><span class="support type perl6"><span>Str</span></span><span>&nbsp;</span><span class="keyword operator perl6"><span>eq</span></span><span>&nbsp;</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>V</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>&nbsp;||&nbsp;</span><span class="variable other basic perl6"><span>$&lt;code</span></span><span>&gt;.</span><span class="support type perl6"><span>Str</span></span><span>&nbsp;</span><span class="keyword operator perl6"><span>eq</span></span><span>&nbsp;</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>C</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*POD_ALLOW_FCODES</span></span><span>&nbsp;:=&nbsp;0;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;&lt;!{</span><span class="variable other basic perl6"><span>$&lt;code</span></span><span>&gt;&nbsp;</span><span class="keyword operator perl6"><span>eq</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>E</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>}&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$&lt;contents</span></span><span>&gt;=[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$endtag</span></span><span>&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;&lt;?{</span><span class="variable other basic perl6"><span>$&lt;code</span></span><span>&gt;&nbsp;</span><span class="keyword operator perl6"><span>ne</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>L</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&amp;&amp;&nbsp;</span><span class="variable other basic perl6"><span>$&lt;code</span></span><span>&gt;&nbsp;</span><span class="keyword operator perl6"><span>ne</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>D</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&amp;&amp;&nbsp;</span><span class="variable other basic perl6"><span>$&lt;code</span></span><span>&gt;&nbsp;</span><span class="keyword operator perl6"><span>ne</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>X</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;}&gt;&nbsp;||&nbsp;&lt;!</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;\</span><span class="keyword operator perl6"><span>s</span></span><span>*&nbsp;\|&nbsp;&gt;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;pod_string_character&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]*</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]?</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;?{</span><span class="variable other basic perl6"><span>$&lt;code</span></span><span>&gt;&nbsp;</span><span class="keyword operator perl6"><span>eq</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>L</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>}&gt;&nbsp;\</span><span class="keyword operator perl6"><span>s</span></span><span>*&nbsp;\|&nbsp;\</span><span class="keyword operator perl6"><span>s</span></span><span>*&nbsp;</span><span class="variable other basic perl6"><span>$&lt;meta</span></span><span>&gt;=[&lt;!</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$endtag</span></span><span>&gt;.]+</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;?{</span><span class="variable other basic perl6"><span>$&lt;code</span></span><span>&gt;&nbsp;</span><span class="keyword operator perl6"><span>eq</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>X</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>}&gt;&nbsp;\</span><span class="keyword operator perl6"><span>s</span></span><span>*&nbsp;\|&nbsp;\</span><span class="keyword operator perl6"><span>s</span></span><span>*&nbsp;(&nbsp;[</span><span class="variable other basic perl6"><span>$&lt;meta</span></span><span>&gt;=[&lt;!</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$endtag</span></span><span>&nbsp;|&nbsp;&lt;[,;]&gt;&nbsp;&gt;.]+]&nbsp;+%&nbsp;\,&nbsp;)&nbsp;+%&nbsp;\;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;?{</span><span class="variable other basic perl6"><span>$&lt;code</span></span><span>&gt;&nbsp;</span><span class="keyword operator perl6"><span>eq</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>D</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>}&gt;&nbsp;\</span><span class="keyword operator perl6"><span>s</span></span><span>*&nbsp;\|&nbsp;\</span><span class="keyword operator perl6"><span>s</span></span><span>*&nbsp;[</span><span class="variable other basic perl6"><span>$&lt;meta</span></span><span>&gt;=[&lt;!</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$endtag</span></span><span>&nbsp;|&nbsp;\;&nbsp;&gt;.]+]&nbsp;+%&nbsp;\;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;?{</span><span class="variable other basic perl6"><span>$&lt;code</span></span><span>&gt;&nbsp;</span><span class="keyword operator perl6"><span>eq</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>E</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>}&gt;&nbsp;(&nbsp;&lt;integer&gt;&nbsp;|&nbsp;</span><span class="variable other basic perl6"><span>$&lt;uni_name</span></span><span>&gt;=&lt;[A..</span><span class="keyword operator perl6"><span>Z</span></span><span>\</span><span class="keyword operator perl6"><span>s</span></span><span>]&gt;+&nbsp;&lt;![a..z]&gt;&nbsp;||&nbsp;</span><span class="variable other basic perl6"><span>$&lt;html_ref</span></span><span>&gt;=&lt;[A..Za..z]&gt;+&nbsp;)&nbsp;+%&nbsp;\;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]?</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;</span><span class="variable other basic perl6"><span>$endtag</span></span><span>&nbsp;||&nbsp;&lt;.worry:&nbsp;</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>Pod&nbsp;formatting&nbsp;code&nbsp;$&lt;code&gt;&nbsp;missing&nbsp;endtag&nbsp;&#39;$endtag&#39;.</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>&gt;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;pod_balanced_braces&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;?{&nbsp;</span><span class="variable other basic perl6"><span>$*POD_IN_FORMATTINGCODE</span></span><span>&nbsp;}&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$endtag</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$&lt;braces</span></span><span>&gt;=[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>&lt;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>+&nbsp;&lt;![&lt;]&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>&gt;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>+&nbsp;&lt;![&gt;]&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;?{&nbsp;nqp::</span><span class="support function"><span>chars</span></span><span>(</span><span class="variable other basic perl6"><span>$&lt;braces</span></span><span>&gt;)&nbsp;&lt;&nbsp;</span><span class="variable other basic perl6"><span>$*POD_ANGLE_COUNT</span></span><span>&nbsp;||&nbsp;</span><span class="variable other basic perl6"><span>$*POD_ANGLE_COUNT</span></span><span>&nbsp;&lt;&nbsp;0&nbsp;}&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;?{&nbsp;</span><span class="variable other basic perl6"><span>$*POD_ANGLE_COUNT</span></span><span>&nbsp;&gt;=&nbsp;1&nbsp;}&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$&lt;start</span></span><span>&gt;=[</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>&lt;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>+]&nbsp;&lt;![&lt;]&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;?{&nbsp;nqp::</span><span class="support function"><span>chars</span></span><span>(</span><span class="variable other basic perl6"><span>$&lt;start</span></span><span>&gt;)&nbsp;==&nbsp;</span><span class="variable other basic perl6"><span>$*POD_ANGLE_COUNT</span></span><span>&nbsp;||&nbsp;</span><span class="variable other basic perl6"><span>$*POD_ANGLE_COUNT</span></span><span>&nbsp;&lt;&nbsp;0&nbsp;}&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$endtag</span></span><span>&nbsp;:=&nbsp;nqp::</span><span class="keyword operator perl6"><span>x</span></span><span>(</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>&gt;</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>,&nbsp;nqp::</span><span class="support function"><span>chars</span></span><span>(</span><span class="variable other basic perl6"><span>$&lt;start</span></span><span>&gt;));</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$&lt;contents</span></span><span>&gt;=[&nbsp;&lt;pod_string_character&gt;*?]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!</span><span class="keyword operator perl6"><span>after</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>&gt;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&gt;&nbsp;</span><span class="variable other basic perl6"><span>$&lt;endtag</span></span><span>&gt;=[</span><span class="variable other basic perl6"><span>$endtag</span></span><span>]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;pod_string&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;pod_string_character&gt;+</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;pod_string_character&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;pod_balanced_braces&gt;&nbsp;||&nbsp;&lt;pod_formatting_code&gt;&nbsp;||&nbsp;</span><span class="variable other basic perl6"><span>$&lt;char</span></span><span>&gt;=[&nbsp;\N&nbsp;||&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;?{&nbsp;</span><span class="variable other basic perl6"><span>$*POD_IN_FORMATTINGCODE</span></span><span>&nbsp;}&gt;&nbsp;\n&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;?{&nbsp;</span><span class="variable other basic perl6"><span>$*POD_DELIMITED_CODE_BLOCK</span></span><span>&nbsp;}&gt;&nbsp;&lt;!</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;\h*&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>=end</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;\h+&nbsp;code&gt;&nbsp;||</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;\h*&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>=</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;\w&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>proto</span></span><span>&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;pod_block&nbsp;{&nbsp;&lt;...&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;pod_configuration(</span><span class="variable other basic perl6"><span>$spaces</span></span><span>&nbsp;=&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;[\n&nbsp;</span><span class="variable other basic perl6"><span>$spaces</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>=</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>]?&nbsp;\h+&nbsp;&lt;colonpair&gt;&nbsp;]*</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;pod_block:sym&lt;delimited_comment&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;^^</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$&lt;spaces</span></span><span>&gt;&nbsp;=&nbsp;[&nbsp;\h*&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>=begin</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;\h+&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>comment</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;{}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;pod_configuration(</span><span class="variable other basic perl6"><span>$&lt;spaces</span></span><span>&gt;)&gt;&nbsp;&lt;pod_newline&gt;+</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$&lt;pod_content</span></span><span>&gt;&nbsp;=&nbsp;[&nbsp;.*?&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;^^&nbsp;</span><span class="variable other basic perl6"><span>$&lt;spaces</span></span><span>&gt;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>=end</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;\h+&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>comment</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;[&nbsp;&lt;pod_newline&gt;&nbsp;|&nbsp;$&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;{$/.CURSOR.typed_panic:&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>X::Syntax::Pod::BeginWithoutEnd</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;type&nbsp;=&gt;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>comment</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;spaces&nbsp;=&gt;&nbsp;~</span><span class="variable other basic perl6"><span>$&lt;spaces</span></span><span>&gt;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;pod_block:sym&lt;delimited&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;^^</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$&lt;spaces</span></span><span>&gt;&nbsp;=&nbsp;[&nbsp;\h*&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>=begin</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;&lt;?pod_newline&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.typed_panic(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>X::Syntax::Pod::BeginWithoutIdentifier</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]?</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\h+&nbsp;&lt;!</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>finish</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*VMARGIN</span></span><span>&nbsp;&nbsp;&nbsp;&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$&lt;spaces</span></span><span>&gt;.</span><span class="support function"><span>to</span></span><span>&nbsp;-&nbsp;</span><span class="variable other basic perl6"><span>$&lt;spaces</span></span><span>&gt;.</span><span class="support function"><span>from</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*ALLOW_INLINE_CODE</span></span><span>&nbsp;:=&nbsp;0;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$&lt;type</span></span><span>&gt;&nbsp;=&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;pod_code_parent&gt;&nbsp;{&nbsp;</span><span class="variable other basic perl6"><span>$*ALLOW_INLINE_CODE</span></span><span>&nbsp;:=&nbsp;1&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;&lt;identifier&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*POD_ALLOW_FCODES</span></span><span>&nbsp;:=&nbsp;nqp::getlexdyn(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$*POD_ALLOW_FCODES</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;pod_configuration(</span><span class="variable other basic perl6"><span>$&lt;spaces</span></span><span>&gt;)&gt;&nbsp;&lt;pod_newline&gt;+</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;pod_content&gt;&nbsp;*</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;^^&nbsp;</span><span class="variable other basic perl6"><span>$&lt;spaces</span></span><span>&gt;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>=end</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;\h+&nbsp;</span><span class="variable other basic perl6"><span>$&lt;type</span></span><span>&gt;&nbsp;[&nbsp;&lt;pod_newline&gt;&nbsp;|&nbsp;$&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;{$/.CURSOR.typed_panic:&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>X::Syntax::Pod::BeginWithoutEnd</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;type&nbsp;=&gt;&nbsp;~</span><span class="variable other basic perl6"><span>$&lt;type</span></span><span>&gt;,&nbsp;spaces&nbsp;=&gt;&nbsp;~</span><span class="variable other basic perl6"><span>$&lt;spaces</span></span><span>&gt;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;pod_block:sym&lt;delimited_table&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;^^</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$&lt;spaces</span></span><span>&gt;&nbsp;=&nbsp;[&nbsp;\h*&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>=begin</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;\h+&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>table</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;{}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*POD_ALLOW_FCODES</span></span><span>&nbsp;:=&nbsp;nqp::getlexdyn(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$*POD_ALLOW_FCODES</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;pod_configuration(</span><span class="variable other basic perl6"><span>$&lt;spaces</span></span><span>&gt;)&gt;&nbsp;&lt;pod_newline&gt;+</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;</span><span class="variable other basic perl6"><span>$&lt;table_row</span></span><span>&gt;=&lt;.table_row_or_blank&gt;&nbsp;]*</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;^^&nbsp;\h*&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>=end</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;\h+&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>table</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;[&nbsp;&lt;pod_newline&gt;&nbsp;|&nbsp;$&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;{$/.CURSOR.typed_panic:&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>X::Syntax::Pod::BeginWithoutEnd</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;type&nbsp;=&gt;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>table</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;spaces&nbsp;=&gt;&nbsp;~</span><span class="variable other basic perl6"><span>$&lt;spaces</span></span><span>&gt;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;pod_block:sym&lt;delimited_code&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;^^</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$&lt;spaces</span></span><span>&gt;&nbsp;=&nbsp;[&nbsp;\h*&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>=begin</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;\h+&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>code</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;{}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*POD_ALLOW_FCODES</span></span><span>&nbsp;&nbsp;:=&nbsp;0;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*POD_IN_CODE_BLOCK</span></span><span>&nbsp;:=&nbsp;1;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*POD_DELIMITED_CODE_BLOCK</span></span><span>&nbsp;:=&nbsp;1;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;pod_configuration(</span><span class="variable other basic perl6"><span>$&lt;spaces</span></span><span>&gt;)&gt;&nbsp;&lt;pod_newline&gt;+</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;&lt;delimited_code_content(</span><span class="variable other basic perl6"><span>$&lt;spaces</span></span><span>&gt;)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;{$/.CURSOR.typed_panic:&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>X::Syntax::Pod::BeginWithoutEnd</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;type&nbsp;=&gt;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>code</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;spaces&nbsp;=&gt;&nbsp;~</span><span class="variable other basic perl6"><span>$&lt;spaces</span></span><span>&gt;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;delimited_code_content(</span><span class="variable other basic perl6"><span>$spaces</span></span><span>&nbsp;=&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;^^</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;</span><span class="variable other basic perl6"><span>$spaces</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>=end</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;\h+&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>code</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;[&nbsp;&lt;pod_newline&gt;&nbsp;|&nbsp;$&nbsp;]&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;pod_string&gt;**0..1&nbsp;&lt;pod_newline&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;pod_newline&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)*</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$spaces</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>=end</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;\h+&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>code</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;[&nbsp;&lt;pod_newline&gt;&nbsp;|&nbsp;$&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;table_row&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\h*&nbsp;&lt;!</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>=</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;\w&gt;&nbsp;\N+&nbsp;[&nbsp;\n&nbsp;|&nbsp;$&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;table_row_or_blank&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.table_row&gt;&nbsp;|&nbsp;[\h*&nbsp;&lt;!</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>=</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;\w&gt;&nbsp;\n&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;pod_block:sym&lt;finish&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;^^&nbsp;\h*</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>=begin</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;\h+&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>finish</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&lt;pod_newline&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>=for</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&nbsp;&nbsp;\h+&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>finish</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&lt;pod_newline&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>=finish</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&lt;pod_newline&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.*</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;pod_block:sym&lt;paragraph&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;^^</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$&lt;spaces</span></span><span>&gt;&nbsp;=&nbsp;[&nbsp;\h*&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>=for</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;\h+&nbsp;&lt;!</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>finish</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*VMARGIN</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$&lt;spaces</span></span><span>&gt;.</span><span class="support function"><span>to</span></span><span>&nbsp;-&nbsp;</span><span class="variable other basic perl6"><span>$&lt;spaces</span></span><span>&gt;.</span><span class="support function"><span>from</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*ALLOW_INLINE_CODE</span></span><span>&nbsp;:=&nbsp;0;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$&lt;type</span></span><span>&gt;&nbsp;=&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;pod_code_parent&gt;&nbsp;{&nbsp;</span><span class="variable other basic perl6"><span>$*ALLOW_INLINE_CODE</span></span><span>&nbsp;:=&nbsp;1&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;&lt;identifier&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*POD_ALLOW_FCODES</span></span><span>&nbsp;:=&nbsp;nqp::getlexdyn(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$*POD_ALLOW_FCODES</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;pod_configuration(</span><span class="variable other basic perl6"><span>$&lt;spaces</span></span><span>&gt;)&gt;&nbsp;&lt;pod_newline&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;pod_content=.pod_textcontent&gt;**0..1</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;pod_block:sym&lt;paragraph_comment&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;^^</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$&lt;spaces</span></span><span>&gt;&nbsp;=&nbsp;[&nbsp;\h*&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>=for</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;\h+&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>comment</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;{}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*POD_ALLOW_FCODES</span></span><span>&nbsp;:=&nbsp;nqp::getlexdyn(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$*POD_ALLOW_FCODES</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;pod_configuration(</span><span class="variable other basic perl6"><span>$&lt;spaces</span></span><span>&gt;)&gt;&nbsp;&lt;pod_newline&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$&lt;pod_content</span></span><span>&gt;&nbsp;=&nbsp;[&nbsp;\h*&nbsp;&lt;!</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>=</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;\w&gt;&nbsp;\N+&nbsp;[&nbsp;\n&nbsp;|&nbsp;$&nbsp;]&nbsp;]*</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;pod_block:sym&lt;paragraph_table&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;^^</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$&lt;spaces</span></span><span>&gt;&nbsp;=&nbsp;[&nbsp;\h*&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>=for</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;\h+&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>table</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;{}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*POD_ALLOW_FCODES</span></span><span>&nbsp;:=&nbsp;nqp::getlexdyn(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$*POD_ALLOW_FCODES</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;pod_configuration(</span><span class="variable other basic perl6"><span>$&lt;spaces</span></span><span>&gt;)&gt;&nbsp;&lt;pod_newline&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;&lt;!</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;\h*&nbsp;\n&gt;&nbsp;&lt;table_row&gt;]*</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;pod_block:sym&lt;paragraph_code&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;^^</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$&lt;spaces</span></span><span>&gt;&nbsp;=&nbsp;[&nbsp;\h*&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>=for</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;\h+&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>code</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;{}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*POD_ALLOW_FCODES</span></span><span>&nbsp;:=&nbsp;0;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*POD_IN_CODE_BLOCK</span></span><span>&nbsp;:=&nbsp;1;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;pod_configuration(</span><span class="variable other basic perl6"><span>$&lt;spaces</span></span><span>&gt;)&gt;&nbsp;&lt;pod_newline&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;&lt;!</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;\h*&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>=</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;\w&gt;&nbsp;&lt;pod_line&gt;&nbsp;]*</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;pod_block:sym&lt;abbreviated&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;^^</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$&lt;spaces</span></span><span>&gt;&nbsp;=&nbsp;[&nbsp;\h*&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>=</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&lt;!</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;begin&nbsp;||&nbsp;</span><span class="support function"><span>end</span></span><span>&nbsp;||&nbsp;</span><span class="keyword control repeat perl6"><span>for</span></span><span>&nbsp;||&nbsp;finish&nbsp;||&nbsp;config&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*VMARGIN</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$&lt;spaces</span></span><span>&gt;.</span><span class="support function"><span>to</span></span><span>&nbsp;-&nbsp;</span><span class="variable other basic perl6"><span>$&lt;spaces</span></span><span>&gt;.</span><span class="support function"><span>from</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*ALLOW_INLINE_CODE</span></span><span>&nbsp;:=&nbsp;0;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$&lt;type</span></span><span>&gt;&nbsp;=&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;pod_code_parent&gt;&nbsp;{&nbsp;</span><span class="variable other basic perl6"><span>$*ALLOW_INLINE_CODE</span></span><span>&nbsp;:=&nbsp;1&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;&lt;identifier&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*POD_ALLOW_FCODES</span></span><span>&nbsp;:=&nbsp;nqp::getlexdyn(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$*POD_ALLOW_FCODES</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[\h*\n|\h+]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;pod_content=.pod_textcontent&gt;**0..1</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;pod_block:sym&lt;abbreviated_comment&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;^^</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$&lt;spaces</span></span><span>&gt;&nbsp;=&nbsp;[&nbsp;\h*&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>=comment</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;{}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*POD_ALLOW_FCODES</span></span><span>&nbsp;:=&nbsp;nqp::getlexdyn(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$*POD_ALLOW_FCODES</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[\h*\n|\h+]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$&lt;pod_content</span></span><span>&gt;&nbsp;=&nbsp;[&nbsp;\h*&nbsp;&lt;!</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>=</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;\w&gt;&nbsp;\N+&nbsp;[&nbsp;\n&nbsp;|&nbsp;$&nbsp;]&nbsp;]*</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;pod_block:sym&lt;abbreviated_table&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;^^</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$&lt;spaces</span></span><span>&gt;&nbsp;=&nbsp;[&nbsp;\h*&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>=table</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;{}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*POD_ALLOW_FCODES</span></span><span>&nbsp;:=&nbsp;nqp::getlexdyn(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$*POD_ALLOW_FCODES</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;pod_newline&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;&lt;!</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;\h*&nbsp;\n&gt;&nbsp;&lt;table_row&gt;]*</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;pod_block:sym&lt;abbreviated_code&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;^^</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$&lt;spaces</span></span><span>&gt;&nbsp;=&nbsp;[&nbsp;\h*&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>=code</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;{}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*POD_ALLOW_FCODES</span></span><span>&nbsp;&nbsp;:=&nbsp;0;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*POD_IN_CODE_BLOCK</span></span><span>&nbsp;:=&nbsp;1;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[\h*\n|\h+]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;&lt;!</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;\h*&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>=</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;\w&gt;&nbsp;&lt;pod_line&gt;&nbsp;]*</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;pod_line&nbsp;{&nbsp;&lt;pod_string&gt;**1&nbsp;[&nbsp;&lt;pod_newline&gt;&nbsp;|&nbsp;$&nbsp;]&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;pod_newline&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\h*&nbsp;\n</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;pod_code_parent&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;[&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>pod</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;|&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>item</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;\d*&nbsp;|&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>nested</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;|&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>defn</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;|&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>finish</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;upper&gt;+</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;![\w]&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;install_doc_phaser&nbsp;{&nbsp;&lt;?&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;vnum&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\d+&nbsp;|&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>*</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;version&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;?</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;v\d+&gt;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>v</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$&lt;vstr</span></span><span>&gt;=[&lt;vnum&gt;+&nbsp;%&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>.</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>+</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>?]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>-</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>|\</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>&gt;&nbsp;#&nbsp;cheat&nbsp;because&nbsp;of&nbsp;LTM&nbsp;fail</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;##&nbsp;Top-level&nbsp;rules</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;token&nbsp;comp_unit&nbsp;{</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;From&nbsp;STD.pm.</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:my&nbsp;$*LEFTSIGIL;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;sigil&nbsp;of&nbsp;LHS&nbsp;for&nbsp;item&nbsp;vs&nbsp;list&nbsp;assignment</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:my&nbsp;$*SCOPE&nbsp;:=&nbsp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;which&nbsp;scope&nbsp;declarator&nbsp;we</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span class="support function"><span>re</span></span><span>&nbsp;under</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*MULTINESS</span></span><span>&nbsp;:=&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;which&nbsp;multi&nbsp;declarator&nbsp;we&#39;re&nbsp;under</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*QSIGIL</span></span><span>&nbsp;:=&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;sigil&nbsp;of&nbsp;current&nbsp;interpolation</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*IN_META</span></span><span>&nbsp;:=&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;parsing&nbsp;a&nbsp;metaoperator&nbsp;like&nbsp;[..]</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*IN_REDUCE</span></span><span>&nbsp;:=&nbsp;0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;attempting&nbsp;to&nbsp;parse&nbsp;an&nbsp;[op]&nbsp;construct</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*IN_DECL</span></span><span>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;what&nbsp;declaration&nbsp;we&#39;re&nbsp;in</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*HAS_SELF</span></span><span>&nbsp;:=&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;is&nbsp;&#39;self&#39;&nbsp;available?&nbsp;(for&nbsp;$.foo&nbsp;style&nbsp;calls)</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*MONKEY_TYPING</span></span><span>&nbsp;:=&nbsp;0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;whether&nbsp;augment/supersede&nbsp;are&nbsp;allowed</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*begin_compunit</span></span><span>&nbsp;:=&nbsp;1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;whether&nbsp;we&#39;re&nbsp;at&nbsp;start&nbsp;of&nbsp;a&nbsp;compilation&nbsp;unit</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*DECLARAND</span></span><span>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;the&nbsp;current&nbsp;thingy&nbsp;we&#39;re&nbsp;declaring,&nbsp;and&nbsp;subject&nbsp;of&nbsp;traits</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*METHODTYPE</span></span><span>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;the&nbsp;current&nbsp;type&nbsp;of&nbsp;method&nbsp;we&#39;re&nbsp;in,&nbsp;if&nbsp;any</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*PKGDECL</span></span><span>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;what&nbsp;type&nbsp;of&nbsp;package&nbsp;we&#39;re&nbsp;in,&nbsp;if&nbsp;any</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>%*MYSTERY</span></span><span>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;names&nbsp;we&nbsp;assume&nbsp;may&nbsp;be&nbsp;post-declared&nbsp;functions</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*BORG</span></span><span>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;who&nbsp;gets&nbsp;blamed&nbsp;for&nbsp;a&nbsp;missing&nbsp;block</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*CCSTATE</span></span><span>&nbsp;:=&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*STRICT</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*INVOCANT_OK</span></span><span>&nbsp;:=&nbsp;0;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*INVOCANT</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;Error&nbsp;related.&nbsp;There&nbsp;are&nbsp;three&nbsp;levels:&nbsp;worry&nbsp;(just&nbsp;a&nbsp;warning),&nbsp;sorry</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;(fatal&nbsp;but&nbsp;not&nbsp;immediately&nbsp;so)&nbsp;and&nbsp;panic&nbsp;(immediately&nbsp;deadly).&nbsp;There</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;is&nbsp;a&nbsp;limit&nbsp;on&nbsp;the&nbsp;number&nbsp;of&nbsp;sorrows&nbsp;also.&nbsp;Unlike&nbsp;STD,&nbsp;which&nbsp;emits&nbsp;the</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;textual&nbsp;messages&nbsp;as&nbsp;it&nbsp;goes,&nbsp;we&nbsp;keep&nbsp;track&nbsp;of&nbsp;the&nbsp;exception&nbsp;objects</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;and,&nbsp;if&nbsp;needed,&nbsp;make&nbsp;a&nbsp;compositite&nbsp;exception&nbsp;group.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>@*WORRIES</span></span><span>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;exception&nbsp;objects&nbsp;resulting&nbsp;from&nbsp;worry</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>@*SORROWS</span></span><span>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;exception&nbsp;objects&nbsp;resulting&nbsp;from&nbsp;sorry</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*SORRY_LIMIT</span></span><span>&nbsp;:=&nbsp;10;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;when&nbsp;sorrow&nbsp;turns&nbsp;to&nbsp;panic</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;Extras.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>%*METAOPGEN</span></span><span>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;hash&nbsp;of&nbsp;generated&nbsp;metaops</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>%*HANDLERS</span></span><span>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;block&nbsp;exception&nbsp;handlers</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*IMPLICIT</span></span><span>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;whether&nbsp;we&nbsp;allow&nbsp;an&nbsp;implicit&nbsp;param</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*FORBID_PIR</span></span><span>&nbsp;:=&nbsp;0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;whether&nbsp;pir::op&nbsp;and&nbsp;Q:PIR&nbsp;{&nbsp;}&nbsp;are&nbsp;disallowed</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*HAS_YOU_ARE_HERE</span></span><span>&nbsp;:=&nbsp;0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;whether&nbsp;{YOU_ARE_HERE}&nbsp;has&nbsp;shown&nbsp;up</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*OFTYPE</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*VMARGIN</span></span><span>&nbsp;&nbsp;&nbsp;&nbsp;:=&nbsp;0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;pod&nbsp;stuff</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*ALLOW_INLINE_CODE</span></span><span>&nbsp;:=&nbsp;0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;pod&nbsp;stuff</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*POD_IN_CODE_BLOCK</span></span><span>&nbsp;:=&nbsp;0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;pod&nbsp;stuff</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*POD_IN_FORMATTINGCODE</span></span><span>&nbsp;:=&nbsp;0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;pod&nbsp;stuff</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*POD_ALLOW_FCODES</span></span><span>&nbsp;:=&nbsp;0b11111111111111111111111111;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;allow&nbsp;which&nbsp;fcodes?</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*POD_ANGLE_COUNT</span></span><span>&nbsp;:=&nbsp;0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;pod&nbsp;stuff</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*IN_REGEX_ASSERTION</span></span><span>&nbsp;:=&nbsp;0;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*SOFT</span></span><span>&nbsp;:=&nbsp;0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;is&nbsp;the&nbsp;soft&nbsp;pragma&nbsp;in&nbsp;effect</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*IN_PROTO</span></span><span>&nbsp;:=&nbsp;0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;are&nbsp;we&nbsp;inside&nbsp;a&nbsp;proto?</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;Various&nbsp;interesting&nbsp;scopes&nbsp;we&#39;d&nbsp;like&nbsp;to&nbsp;keep&nbsp;to&nbsp;hand.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*GLOBALish</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*PACKAGE</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*SETTING</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*UNIT</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*UNIT_OUTER</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*EXPORT</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;stack&nbsp;of&nbsp;packages,&nbsp;which&nbsp;the&nbsp;&#39;is&nbsp;export&#39;&nbsp;needs</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>@*PACKAGES</span></span><span>&nbsp;:=&nbsp;[];</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;A&nbsp;place&nbsp;for&nbsp;Pod</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*POD_BLOCKS</span></span><span>&nbsp;:=&nbsp;[];</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*POD_BLOCKS_SEEN</span></span><span>&nbsp;:=&nbsp;{};</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*POD_PAST</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*DECLARATOR_DOCS</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*PRECEDING_DECL</span></span><span>;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;for&nbsp;#=&nbsp;comments</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*PRECEDING_DECL_LINE</span></span><span>&nbsp;:=&nbsp;-1;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;XXX&nbsp;update&nbsp;this&nbsp;when&nbsp;I&nbsp;see&nbsp;another&nbsp;comment&nbsp;like&nbsp;it?</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;Quasis&nbsp;and&nbsp;unquotes</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*IN_QUASI</span></span><span>&nbsp;:=&nbsp;0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;whether&nbsp;we&#39;re&nbsp;currently&nbsp;in&nbsp;a&nbsp;quasi&nbsp;block</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*MAIN</span></span><span>&nbsp;:=&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>MAIN</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;performance&nbsp;improvement&nbsp;stuff</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*FAKE_INFIX_FOUND</span></span><span>&nbsp;:=&nbsp;0;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;Setting&nbsp;loading&nbsp;and&nbsp;symbol&nbsp;setup.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;Create&nbsp;unit&nbsp;outer&nbsp;(where&nbsp;we&nbsp;assemble&nbsp;any&nbsp;lexicals&nbsp;accumulated</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;from&nbsp;e.g.&nbsp;REPL)&nbsp;and&nbsp;the&nbsp;real&nbsp;UNIT.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*UNIT_OUTER</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.push_lexpad($/);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*UNIT</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.push_lexpad($/);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;If&nbsp;we&nbsp;already&nbsp;have&nbsp;a&nbsp;specified&nbsp;outer&nbsp;context,&nbsp;then&nbsp;that&#39;s</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;our&nbsp;setting.&nbsp;Otherwise,&nbsp;load&nbsp;one.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$have_outer</span></span><span>&nbsp;:=&nbsp;nqp::</span><span class="support function"><span>defined</span></span><span>(</span><span class="variable other basic perl6"><span>%*COMPILING</span></span><span>&lt;</span><span class="variable other basic perl6"><span>%?OPTIONS</span></span><span>&gt;&lt;outer_ctx&gt;);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$have_outer</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*UNIT</span></span><span>.annotate(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>IN_DECL</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>eval</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>else</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*SETTING</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.load_setting($/,&nbsp;</span><span class="variable other basic perl6"><span>%*COMPILING</span></span><span>&lt;</span><span class="variable other basic perl6"><span>%?OPTIONS</span></span><span>&gt;&lt;setting&gt;&nbsp;//&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>CORE</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*UNIT</span></span><span>.annotate(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>IN_DECL</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>mainline</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.unitstart();</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control control-handlers perl6"><span>try</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$EXPORTHOW</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.find_symbol([</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>EXPORTHOW</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>]);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control repeat perl6"><span>for</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.stash_hash(</span><span class="variable other basic perl6"><span>$EXPORTHOW</span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>%*HOW</span></span><span>{</span><span class="variable other basic perl6"><span>$_</span></span><span>.</span><span class="support function"><span>key</span></span><span>}&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$_</span></span><span>.</span><span class="support function"><span>value</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;Create&nbsp;GLOBAL(ish),&nbsp;unless&nbsp;we&nbsp;were&nbsp;given&nbsp;one.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;nqp::existskey(</span><span class="variable other basic perl6"><span>%*COMPILING</span></span><span>&lt;</span><span class="variable other basic perl6"><span>%?OPTIONS</span></span><span>&gt;,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>global</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*GLOBALish</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>%*COMPILING</span></span><span>&lt;</span><span class="variable other basic perl6"><span>%?OPTIONS</span></span><span>&gt;&lt;global&gt;;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>elsif</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$have_outer</span></span><span>&nbsp;&amp;&amp;&nbsp;</span><span class="variable other basic perl6"><span>$*UNIT_OUTER</span></span><span>.symbol(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>GLOBALish</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*GLOBALish</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.force_value(</span><span class="variable other basic perl6"><span>$*UNIT_OUTER</span></span><span>.symbol(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>GLOBALish</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>),&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>GLOBALish</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;1);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>else</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*GLOBALish</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.pkg_create_mo($/,&nbsp;</span><span class="variable other basic perl6"><span>%*HOW</span></span><span>&lt;</span><span class="keyword other module perl6"><span>package</span></span><span>&gt;,&nbsp;:</span><span class="support function"><span>name</span></span><span>(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>GLOBAL</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>));</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.pkg_compose(</span><span class="variable other basic perl6"><span>$*GLOBALish</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;Create&nbsp;or&nbsp;pull&nbsp;in&nbsp;existing&nbsp;EXPORT.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$have_outer</span></span><span>&nbsp;&amp;&amp;&nbsp;</span><span class="variable other basic perl6"><span>$*UNIT_OUTER</span></span><span>.symbol(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>EXPORT</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*EXPORT</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.force_value(</span><span class="variable other basic perl6"><span>$*UNIT_OUTER</span></span><span>.symbol(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>EXPORT</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>),&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>EXPORT</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;1);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>else</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*EXPORT</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.pkg_create_mo($/,&nbsp;</span><span class="variable other basic perl6"><span>%*HOW</span></span><span>&lt;</span><span class="keyword other module perl6"><span>package</span></span><span>&gt;,&nbsp;:</span><span class="support function"><span>name</span></span><span>(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>EXPORT</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>));</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.pkg_compose(</span><span class="variable other basic perl6"><span>$*EXPORT</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;If&nbsp;there&#39;s&nbsp;a&nbsp;self&nbsp;in&nbsp;scope,&nbsp;set&nbsp;$*HAS_SELF.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$have_outer</span></span><span>&nbsp;&amp;&amp;&nbsp;</span><span class="variable other basic perl6"><span>$*UNIT_OUTER</span></span><span>.symbol(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>self</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*HAS_SELF</span></span><span>&nbsp;:=&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>complete</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;Take&nbsp;current&nbsp;package&nbsp;from&nbsp;outer&nbsp;context&nbsp;if&nbsp;any,&nbsp;otherwise&nbsp;for&nbsp;a</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;fresh&nbsp;compilation&nbsp;unit&nbsp;we&nbsp;start&nbsp;in&nbsp;GLOBAL.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$have_outer</span></span><span>&nbsp;&amp;&amp;&nbsp;</span><span class="variable other basic perl6"><span>$*UNIT_OUTER</span></span><span>.symbol(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$?PACKAGE</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*PACKAGE</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.force_value(</span><span class="variable other basic perl6"><span>$*UNIT_OUTER</span></span><span>.symbol(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$?PACKAGE</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>),&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$?PACKAGE</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;1);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>else</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*PACKAGE</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*GLOBALish</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;If&nbsp;we&#39;re&nbsp;eval&#39;ing&nbsp;in&nbsp;the&nbsp;context&nbsp;of&nbsp;a&nbsp;%?LANG,&nbsp;set&nbsp;up&nbsp;our&nbsp;own</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;%*LANG&nbsp;based&nbsp;on&nbsp;it.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$have_outer</span></span><span>&nbsp;&amp;&amp;&nbsp;</span><span class="variable other basic perl6"><span>$*UNIT_OUTER</span></span><span>.symbol(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>%?LANG</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control repeat perl6"><span>for</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.force_value(</span><span class="variable other basic perl6"><span>$*UNIT_OUTER</span></span><span>.symbol(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>%?LANG</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>),&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>%?LANG</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;1).FLATTENABLE_HASH()&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>%*LANG</span></span><span>{</span><span class="variable other basic perl6"><span>$_</span></span><span>.</span><span class="support function"><span>key</span></span><span>}&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$_</span></span><span>.</span><span class="support function"><span>value</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$have_outer</span></span><span>&nbsp;&amp;&amp;&nbsp;</span><span class="variable other basic perl6"><span>$*UNIT_OUTER</span></span><span>.symbol(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$*MAIN</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*MAIN</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.force_value(</span><span class="variable other basic perl6"><span>$*UNIT_OUTER</span></span><span>.symbol(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$*MAIN</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>),&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$*MAIN</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;1);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$have_outer</span></span><span>&nbsp;&amp;&amp;&nbsp;</span><span class="variable other basic perl6"><span>$*UNIT_OUTER</span></span><span>.symbol(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$?STRICT</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*STRICT</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.force_value(</span><span class="variable other basic perl6"><span>$*UNIT_OUTER</span></span><span>.symbol(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$*STRICT</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>),&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$*STRICT</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;1);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>else</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$FILES</span></span><span>&nbsp;:=&nbsp;nqp::getlexdyn(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$?FILES</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*STRICT</span></span><span>&nbsp;:=&nbsp;!nqp::isnull(</span><span class="variable other basic perl6"><span>$FILES</span></span><span>)&nbsp;&amp;&amp;&nbsp;</span><span class="variable other basic perl6"><span>$FILES</span></span><span>&nbsp;</span><span class="keyword operator perl6"><span>ne</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>-e</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;Install&nbsp;unless&nbsp;we&#39;ve&nbsp;no&nbsp;setting,&nbsp;in&nbsp;which&nbsp;case&nbsp;we&#39;ve&nbsp;likely&nbsp;no</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;static&nbsp;lexpad&nbsp;class&nbsp;yet&nbsp;either.&nbsp;Also,&nbsp;UNIT&nbsp;needs&nbsp;a&nbsp;code&nbsp;object.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>unless</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>%*COMPILING</span></span><span>&lt;</span><span class="variable other basic perl6"><span>%?OPTIONS</span></span><span>&gt;&lt;setting&gt;&nbsp;</span><span class="keyword operator perl6"><span>eq</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>NULL</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.install_lexical_symbol(</span><span class="variable other basic perl6"><span>$*UNIT</span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>GLOBALish</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$*GLOBALish</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.install_lexical_symbol(</span><span class="variable other basic perl6"><span>$*UNIT</span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>EXPORT</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$*EXPORT</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.install_lexical_symbol(</span><span class="variable other basic perl6"><span>$*UNIT</span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$?PACKAGE</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$*PACKAGE</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.install_lexical_symbol(</span><span class="variable other basic perl6"><span>$*UNIT</span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>::?PACKAGE</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$*PACKAGE</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*DECLARAND</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.stub_code_object(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>Block</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$M</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>%*COMPILING</span></span><span>&lt;</span><span class="variable other basic perl6"><span>%?OPTIONS</span></span><span>&gt;&lt;M&gt;;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;nqp::</span><span class="support function"><span>defined</span></span><span>(</span><span class="variable other basic perl6"><span>$M</span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control repeat perl6"><span>for</span></span><span>&nbsp;nqp::islist(</span><span class="variable other basic perl6"><span>$M</span></span><span>)&nbsp;??&nbsp;</span><span class="variable other basic perl6"><span>$M</span></span><span>&nbsp;!!&nbsp;[</span><span class="variable other basic perl6"><span>$M</span></span><span>]&nbsp;-&gt;&nbsp;</span><span class="variable other basic perl6"><span>$longname</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$module</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.load_module($/,&nbsp;</span><span class="variable other basic perl6"><span>$longname</span></span><span>,&nbsp;{},&nbsp;</span><span class="variable other basic perl6"><span>$*GLOBALish</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;do_import($/,&nbsp;</span><span class="variable other basic perl6"><span>$module</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$longname</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.import_EXPORTHOW($/,&nbsp;</span><span class="variable other basic perl6"><span>$module</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.finishpad&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.bom&gt;?</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;statementlist=.FOREIGN_LANG(</span><span class="variable other basic perl6"><span>$*MAIN</span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>statementlist</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;1)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.install_doc_phaser&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;$&nbsp;||&nbsp;&lt;.typed_panic:&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>X::Syntax::Confused</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&gt;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;Emit&nbsp;any&nbsp;errors/worries.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.explain_mystery();</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>@*SORROWS</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;+</span><span class="variable other basic perl6"><span>@*SORROWS</span></span><span>&nbsp;==&nbsp;1&nbsp;&amp;&amp;&nbsp;!</span><span class="variable other basic perl6"><span>@*WORRIES</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>@*SORROWS</span></span><span>[0].throw()</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>else</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.group_exception(</span><span class="variable other basic perl6"><span>@*SORROWS</span></span><span>.</span><span class="support function"><span>pop</span></span><span>).throw();</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>@*WORRIES</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nqp::printfh(nqp::getstderr(),&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.group_exception().</span><span class="support function"><span>gist</span></span><span>());</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;Install&nbsp;POD-related&nbsp;variables.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*POD_PAST</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.add_constant(</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>Array</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>type_new</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;:nocache,&nbsp;|</span><span class="variable other basic perl6"><span>$*POD_BLOCKS</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.install_lexical_symbol(</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*UNIT</span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$=pod</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$*POD_PAST</span></span><span>.compile_time_value</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;Tag&nbsp;UNIT&nbsp;with&nbsp;a&nbsp;magical&nbsp;lexical.&nbsp;Also&nbsp;if&nbsp;we&#39;re&nbsp;compiling&nbsp;CORE,</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;give&nbsp;it&nbsp;such&nbsp;a&nbsp;tag&nbsp;too.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>%*COMPILING</span></span><span>&lt;</span><span class="variable other basic perl6"><span>%?OPTIONS</span></span><span>&gt;&lt;setting&gt;&nbsp;</span><span class="keyword operator perl6"><span>eq</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>NULL</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$marker</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.pkg_create_mo($/,&nbsp;</span><span class="variable other basic perl6"><span>%*HOW</span></span><span>&lt;</span><span class="keyword other module perl6"><span>package</span></span><span>&gt;,&nbsp;:</span><span class="support function"><span>name</span></span><span>(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>!CORE_MARKER</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>));</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$marker</span></span><span>.</span><span class="support function"><span>HOW</span></span><span>.compose(</span><span class="variable other basic perl6"><span>$marker</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.install_lexical_symbol(</span><span class="variable other basic perl6"><span>$*UNIT</span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>!CORE_MARKER</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$marker</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>else</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$marker</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.pkg_create_mo($/,&nbsp;</span><span class="variable other basic perl6"><span>%*HOW</span></span><span>&lt;</span><span class="keyword other module perl6"><span>package</span></span><span>&gt;,&nbsp;:</span><span class="support function"><span>name</span></span><span>(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>!UNIT_MARKER</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>));</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$marker</span></span><span>.</span><span class="support function"><span>HOW</span></span><span>.compose(</span><span class="variable other basic perl6"><span>$marker</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.install_lexical_symbol(</span><span class="variable other basic perl6"><span>$*UNIT</span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>!UNIT_MARKER</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$marker</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;CHECK&nbsp;time.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.</span><span class="meta function perl6"><span>CHECK</span></span><span>();&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>method</span></span><span>&nbsp;import_EXPORTHOW($/,&nbsp;</span><span class="variable other basic perl6"><span>$UNIT</span></span><span>)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;nqp::existskey(</span><span class="variable other basic perl6"><span>$UNIT</span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>EXPORTHOW</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control repeat perl6"><span>for</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.stash_hash(</span><span class="variable other basic perl6"><span>$UNIT</span></span><span>&lt;EXPORTHOW&gt;)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="support type perl6"><span>str</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$key</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$_</span></span><span>.</span><span class="support function"><span>key</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$key</span></span><span>&nbsp;</span><span class="keyword operator perl6"><span>eq</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>SUPERSEDE</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>%SUPERSEDE</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.stash_hash(</span><span class="variable other basic perl6"><span>$_</span></span><span>.</span><span class="support function"><span>value</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control repeat perl6"><span>for</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>%SUPERSEDE</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="support type perl6"><span>str</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$pdecl</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$_</span></span><span>.</span><span class="support function"><span>key</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$meta</span></span><span>&nbsp;&nbsp;:=&nbsp;nqp::decont(</span><span class="variable other basic perl6"><span>$_</span></span><span>.</span><span class="support function"><span>value</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>unless</span></span><span>&nbsp;nqp::existskey(</span><span class="variable other basic perl6"><span>%*HOW</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$pdecl</span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.typed_panic(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>X::EXPORTHOW::NothingToSupersede</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;declarator&nbsp;=&gt;&nbsp;</span><span class="variable other basic perl6"><span>$pdecl</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;nqp::existskey(</span><span class="variable other basic perl6"><span>%*HOWUSE</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$pdecl</span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.typed_panic(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>X::EXPORTHOW::Conflict</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;declarator&nbsp;=&gt;&nbsp;</span><span class="variable other basic perl6"><span>$pdecl</span></span><span>,&nbsp;directive&nbsp;=&gt;&nbsp;</span><span class="variable other basic perl6"><span>$key</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>%*HOW</span></span><span>{</span><span class="variable other basic perl6"><span>$pdecl</span></span><span>}&nbsp;&nbsp;&nbsp;&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$meta</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>%*HOWUSE</span></span><span>{</span><span class="variable other basic perl6"><span>$pdecl</span></span><span>}&nbsp;:=&nbsp;nqp::hash(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>SUPERSEDE</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$meta</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>elsif</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$key</span></span><span>&nbsp;</span><span class="keyword operator perl6"><span>eq</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>DECLARE</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>%DECLARE</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.stash_hash(</span><span class="variable other basic perl6"><span>$_</span></span><span>.</span><span class="support function"><span>value</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control repeat perl6"><span>for</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>%DECLARE</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="support type perl6"><span>str</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$pdecl</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$_</span></span><span>.</span><span class="support function"><span>key</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$meta</span></span><span>&nbsp;&nbsp;:=&nbsp;nqp::decont(</span><span class="variable other basic perl6"><span>$_</span></span><span>.</span><span class="support function"><span>value</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;nqp::existskey(</span><span class="variable other basic perl6"><span>%*HOW</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$pdecl</span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.typed_panic(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>X::EXPORTHOW::Conflict</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;declarator&nbsp;=&gt;&nbsp;</span><span class="variable other basic perl6"><span>$pdecl</span></span><span>,&nbsp;directive&nbsp;=&gt;&nbsp;</span><span class="variable other basic perl6"><span>$key</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>%*HOW</span></span><span>{</span><span class="variable other basic perl6"><span>$pdecl</span></span><span>}&nbsp;&nbsp;&nbsp;&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$meta</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>%*HOWUSE</span></span><span>{</span><span class="variable other basic perl6"><span>$pdecl</span></span><span>}&nbsp;:=&nbsp;nqp::hash(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>DECLARE</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$meta</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.add_package_declarator(</span><span class="variable other basic perl6"><span>$pdecl</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>elsif</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$key</span></span><span>&nbsp;</span><span class="keyword operator perl6"><span>eq</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>COMPOSE</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>%COMPOSE</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.stash_hash(</span><span class="variable other basic perl6"><span>$_</span></span><span>.</span><span class="support function"><span>value</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.NYI(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>EXPORTHOW::COMPOSE</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>else</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$key</span></span><span>&nbsp;</span><span class="keyword operator perl6"><span>eq</span></span><span>&nbsp;nqp::</span><span class="support function"><span>lc</span></span><span>(</span><span class="variable other basic perl6"><span>$key</span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;Support&nbsp;legacy&nbsp;API,&nbsp;which&nbsp;behaves&nbsp;like&nbsp;an&nbsp;unchecked</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;supersede.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;XXX&nbsp;Can&nbsp;give&nbsp;deprecation&nbsp;warning&nbsp;in&nbsp;the&nbsp;future,&nbsp;remove</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;before&nbsp;6.0.0.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>%*HOW</span></span><span>{</span><span class="variable other basic perl6"><span>$key</span></span><span>}&nbsp;:=&nbsp;nqp::decont(</span><span class="variable other basic perl6"><span>$_</span></span><span>.</span><span class="support function"><span>value</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>else</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.typed_panic(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>X::EXPORTHOW::InvalidDirective</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;directive&nbsp;=&gt;&nbsp;</span><span class="variable other basic perl6"><span>$key</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>method</span></span><span>&nbsp;add_package_declarator(</span><span class="support type perl6"><span>str</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$pdecl</span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;Compute&nbsp;name&nbsp;of&nbsp;grammar/action&nbsp;entry.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$canname</span></span><span>&nbsp;:=&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>package_declarator:sym&lt;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;~&nbsp;</span><span class="variable other basic perl6"><span>$pdecl</span></span><span>&nbsp;~&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>&gt;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;Add&nbsp;to&nbsp;grammar&nbsp;if&nbsp;needed.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>unless</span></span><span>&nbsp;nqp::</span><span class="support function"><span>can</span></span><span>(</span><span class="variable language perl6"><span>self</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$canname</span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="keyword other module perl6"><span>role</span></span><span>&nbsp;PackageDeclarator[</span><span class="variable other basic perl6"><span>$meth_name</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$declarator</span></span><span>]&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;::(</span><span class="variable other basic perl6"><span>$meth_name</span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*OUTERPACKAGE</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*PACKAGE</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*PKGDECL</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$declarator</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*LINE_NO</span></span><span>&nbsp;:=&nbsp;HLL::Compiler.lineof(</span><span class="variable language perl6"><span>self</span></span><span>.orig(),&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.</span><span class="support function"><span>from</span></span><span>(),&nbsp;:cache(1));</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$&lt;sym</span></span><span>&gt;=[</span><span class="variable other basic perl6"><span>$declarator</span></span><span>]&nbsp;&lt;.end_keyword&gt;&nbsp;&lt;package_def&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.</span><span class="support function"><span>HOW</span></span><span>.mixin(</span><span class="variable language perl6"><span>self</span></span><span>,&nbsp;PackageDeclarator.</span><span class="support function"><span>HOW</span></span><span>.curry(PackageDeclarator,&nbsp;</span><span class="variable other basic perl6"><span>$canname</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$pdecl</span></span><span>));</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;This&nbsp;also&nbsp;becomes&nbsp;the&nbsp;current&nbsp;MAIN.&nbsp;Also&nbsp;place&nbsp;it&nbsp;in&nbsp;%?LANG.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>%*LANG</span></span><span>&lt;MAIN&gt;&nbsp;:=&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.</span><span class="support function"><span>WHAT</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.install_lexical_symbol(</span><span class="variable other basic perl6"><span>$*W</span></span><span>.cur_lexpad(),&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>%?LANG</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.p6ize_recursive(</span><span class="variable other basic perl6"><span>%*LANG</span></span><span>));</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;Add&nbsp;action&nbsp;method&nbsp;if&nbsp;needed.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>unless</span></span><span>&nbsp;nqp::</span><span class="support function"><span>can</span></span><span>(</span><span class="variable other basic perl6"><span>$*ACTIONS</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$canname</span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="keyword other module perl6"><span>role</span></span><span>&nbsp;PackageDeclaratorAction[</span><span class="variable other basic perl6"><span>$meth</span></span><span>]&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>method</span></span><span>&nbsp;::(</span><span class="variable other basic perl6"><span>$meth</span></span><span>)($/)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control flowcontrol perl6"><span>make</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$&lt;package_def</span></span><span>&gt;.ast;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>%*LANG</span></span><span>&lt;MAIN-actions&gt;&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*ACTIONS</span></span><span>.</span><span class="support function"><span>HOW</span></span><span>.mixin(</span><span class="variable other basic perl6"><span>$*ACTIONS</span></span><span>,</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PackageDeclaratorAction.</span><span class="support function"><span>HOW</span></span><span>.curry(PackageDeclaratorAction,&nbsp;</span><span class="variable other basic perl6"><span>$canname</span></span><span>));</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>rule</span></span><span>&nbsp;statementlist(</span><span class="variable other basic perl6"><span>$*statement_level</span></span><span>&nbsp;=&nbsp;0)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>%*LANG</span></span><span>&nbsp;&nbsp;&nbsp;:=&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.shallow_copy(nqp::getlexdyn(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>%*LANG</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>));</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>%*HOW</span></span><span>&nbsp;&nbsp;&nbsp;&nbsp;:=&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.shallow_copy(nqp::getlexdyn(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>%*HOW</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>));</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>%*HOWUSE</span></span><span>&nbsp;:=&nbsp;nqp::hash();</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*STRICT</span></span><span>&nbsp;:=&nbsp;nqp::getlexdyn(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$*STRICT</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:dba(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>statement&nbsp;list</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;$</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;?</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;&lt;[\)\]\}]&gt;&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;[&nbsp;&lt;statement&gt;&nbsp;&lt;.eat_terminator&gt;&nbsp;]*</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>method</span></span><span>&nbsp;shallow_copy(</span><span class="variable other basic perl6"><span>%hash</span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>%result</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control repeat perl6"><span>for</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>%hash</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>%result</span></span><span>{</span><span class="variable other basic perl6"><span>$_</span></span><span>.</span><span class="support function"><span>key</span></span><span>}&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$_</span></span><span>.</span><span class="support function"><span>value</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>%result</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>rule</span></span><span>&nbsp;semilist&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:dba(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>lol&nbsp;composer</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;?</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;&lt;[)\]}]&gt;&nbsp;&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;[&lt;statement&gt;&lt;.eat_terminator&gt;&nbsp;]*</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>rule</span></span><span>&nbsp;sequence&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:dba(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>sequence&nbsp;of&nbsp;statements</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;?</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;&lt;[)\]}]&gt;&nbsp;&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;[&lt;statement&gt;&lt;.eat_terminator&gt;&nbsp;]*</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;label&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;identifier&gt;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>:</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&lt;?[\</span><span class="keyword operator perl6"><span>s</span></span><span>]&gt;&nbsp;&lt;.ws&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*LABEL</span></span><span>&nbsp;:=&nbsp;~</span><span class="variable other basic perl6"><span>$&lt;identifier</span></span><span>&gt;;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.already_declared(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>my</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$*PACKAGE</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.cur_lexpad(),&nbsp;[</span><span class="variable other basic perl6"><span>$*LABEL</span></span><span>])&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.throw($/,&nbsp;[</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>X</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>Redeclaration</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>],&nbsp;symbol&nbsp;=&gt;&nbsp;</span><span class="variable other basic perl6"><span>$*LABEL</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="support type perl6"><span>str</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$orig</span></span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:=&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.orig();</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="support type perl6"><span>int</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$total</span></span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:=&nbsp;nqp::</span><span class="support function"><span>chars</span></span><span>(</span><span class="variable other basic perl6"><span>$orig</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="support type perl6"><span>int</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$from</span></span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:=&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.MATCH.</span><span class="support function"><span>from</span></span><span>();</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="support type perl6"><span>int</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$to</span></span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:=&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.MATCH.</span><span class="support function"><span>to</span></span><span>()&nbsp;+&nbsp;nqp::</span><span class="support function"><span>chars</span></span><span>(</span><span class="variable other basic perl6"><span>$*LABEL</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="support type perl6"><span>int</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$line</span></span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:=&nbsp;HLL::Compiler.lineof(</span><span class="variable other basic perl6"><span>$orig</span></span><span>,&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.</span><span class="support function"><span>from</span></span><span>());</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="support type perl6"><span>str</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$prematch</span></span><span>&nbsp;&nbsp;:=&nbsp;nqp::</span><span class="support function"><span>substr</span></span><span>(</span><span class="variable other basic perl6"><span>$orig</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$from</span></span><span>&nbsp;&gt;&nbsp;20&nbsp;??&nbsp;</span><span class="variable other basic perl6"><span>$from</span></span><span>&nbsp;-&nbsp;20&nbsp;!!&nbsp;0,&nbsp;</span><span class="variable other basic perl6"><span>$from</span></span><span>&nbsp;&gt;&nbsp;20&nbsp;??&nbsp;20&nbsp;!!&nbsp;</span><span class="variable other basic perl6"><span>$from</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="support type perl6"><span>str</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$postmatch</span></span><span>&nbsp;:=&nbsp;nqp::</span><span class="support function"><span>substr</span></span><span>(</span><span class="variable other basic perl6"><span>$orig</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$to</span></span><span>,&nbsp;20);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$label</span></span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.find_symbol([</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>Label</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>]).</span><span class="support function"><span>new</span></span><span>(&nbsp;:</span><span class="support function"><span>name</span></span><span>(</span><span class="variable other basic perl6"><span>$*LABEL</span></span><span>),&nbsp;:</span><span class="variable other basic perl6"><span>$line</span></span><span>,&nbsp;:</span><span class="variable other basic perl6"><span>$prematch</span></span><span>,&nbsp;:</span><span class="variable other basic perl6"><span>$postmatch</span></span><span>&nbsp;);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.add_object(</span><span class="variable other basic perl6"><span>$label</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.install_lexical_symbol(</span><span class="variable other basic perl6"><span>$*W</span></span><span>.cur_lexpad(),&nbsp;</span><span class="variable other basic perl6"><span>$*LABEL</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$label</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;statement(</span><span class="variable other basic perl6"><span>$*LABEL</span></span><span>&nbsp;=&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*QSIGIL</span></span><span>&nbsp;:=&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*SCOPE</span></span><span>&nbsp;:=&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*ACTIONS</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>%*LANG</span></span><span>&lt;MAIN-actions&gt;;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;&lt;[\])}]&gt;&nbsp;|&nbsp;$&nbsp;&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!stopper&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!!{&nbsp;nqp::rebless($/.CURSOR,&nbsp;</span><span class="variable other basic perl6"><span>%*LANG</span></span><span>&lt;MAIN&gt;)&nbsp;}&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;label&gt;&nbsp;&lt;statement(</span><span class="variable other basic perl6"><span>$*LABEL</span></span><span>)&gt;&nbsp;{&nbsp;</span><span class="variable other basic perl6"><span>$*LABEL</span></span><span>&nbsp;:=&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*LABEL</span></span><span>&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;statement_control&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;EXPR&gt;&nbsp;:dba(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>statement&nbsp;end</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;&lt;?MARKED(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>endstmt</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;:dba(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>statement&nbsp;modifier</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&nbsp;&lt;.ws&gt;&nbsp;&lt;statement_mod_cond&gt;&nbsp;&lt;statement_mod_loop&gt;?</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;:dba(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>statement&nbsp;modifier&nbsp;loop</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&nbsp;&lt;.ws&gt;&nbsp;&lt;statement_mod_loop&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$sp</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$&lt;EXPR</span></span><span>&gt;&lt;statement_prefix&gt;;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$sp</span></span><span>&nbsp;&amp;&amp;&nbsp;</span><span class="variable other basic perl6"><span>$sp</span></span><span>&lt;sym&gt;&nbsp;</span><span class="keyword operator perl6"><span>eq</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>do</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$s</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$&lt;statement_mod_loop</span></span><span>&gt;&lt;sym&gt;;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.obs(</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>do...</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>&nbsp;~&nbsp;</span><span class="variable other basic perl6"><span>$s</span></span><span>,&nbsp;</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>repeat...while&nbsp;or&nbsp;repeat...until</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]?</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;?[;]&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;?stopper&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;{}&nbsp;&lt;.panic:&nbsp;</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>Bogus&nbsp;statement</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;eat_terminator&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;&lt;?MARKED(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>endstmt</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;&nbsp;&lt;.ws&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;&lt;?</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>)</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;|&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>]</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;|&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>}</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;$</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;&lt;?stopper&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;{&nbsp;$/.CURSOR.typed_panic(&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>X::Syntax::Confused</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;reason&nbsp;=&gt;&nbsp;</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>Missing&nbsp;semicolon.</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>&nbsp;)&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;xblock(</span><span class="variable other basic perl6"><span>$*IMPLICIT</span></span><span>&nbsp;=&nbsp;0)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*GOAL</span></span><span>&nbsp;:=&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>{</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*BORG</span></span><span>&nbsp;:=&nbsp;{};</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;EXPR&gt;&nbsp;&lt;.ws&gt;&nbsp;&lt;pblock(</span><span class="variable other basic perl6"><span>$*IMPLICIT</span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;pblock(</span><span class="variable other basic perl6"><span>$*IMPLICIT</span></span><span>&nbsp;=&nbsp;0)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*DECLARAND</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.stub_code_object(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>Block</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:dba(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>parameterized&nbsp;block</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;lambda&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.newpad&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*SCOPE</span></span><span>&nbsp;:=&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>my</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*GOAL</span></span><span>&nbsp;:=&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>{</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span class="support function"><span>signature</span></span><span>&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;blockoid&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;?[{]&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.newpad&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;blockoid&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;nqp::ishash(</span><span class="variable other basic perl6"><span>$*BORG</span></span><span>)&nbsp;&amp;&amp;&nbsp;</span><span class="variable other basic perl6"><span>$*BORG</span></span><span>&lt;block&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$pos</span></span><span>&nbsp;:=&nbsp;$/.CURSOR.</span><span class="support function"><span>pos</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*BORG</span></span><span>&lt;</span><span class="support function"><span>name</span></span><span>&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>!clear_highwater</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>();</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>!cursor_pos</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>(</span><span class="variable other basic perl6"><span>$*BORG</span></span><span>&lt;block&gt;.CURSOR.</span><span class="support function"><span>pos</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.typed_sorry(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>X::Syntax::BlockGobbled</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;what&nbsp;=&gt;&nbsp;~</span><span class="variable other basic perl6"><span>$*BORG</span></span><span>&lt;</span><span class="support function"><span>name</span></span><span>&gt;);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>!cursor_pos</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>(</span><span class="variable other basic perl6"><span>$pos</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.missing(</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>block&nbsp;(apparently&nbsp;taken&nbsp;by&nbsp;&#39;</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>&nbsp;~&nbsp;</span><span class="variable other basic perl6"><span>$*BORG</span></span><span>&lt;</span><span class="support function"><span>name</span></span><span>&gt;&nbsp;~&nbsp;</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>&#39;)</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span class="keyword control conditional perl6"><span>else</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>!clear_highwater</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>();</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>!cursor_pos</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>(</span><span class="variable other basic perl6"><span>$*BORG</span></span><span>&lt;block&gt;.CURSOR.</span><span class="support function"><span>pos</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.typed_sorry(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>X::Syntax::BlockGobbled</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>!cursor_pos</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>(</span><span class="variable other basic perl6"><span>$pos</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.missing(</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>block&nbsp;(apparently&nbsp;taken&nbsp;by&nbsp;expression)</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span class="keyword control conditional perl6"><span>elsif</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>%*MYSTERY</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.missing(</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>block&nbsp;(taken&nbsp;by&nbsp;some&nbsp;undeclared&nbsp;routine?)</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span class="keyword control conditional perl6"><span>else</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.missing(</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>block</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;lambda&nbsp;{&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>-&gt;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;|&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>&lt;-&gt;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;block(</span><span class="variable other basic perl6"><span>$*IMPLICIT</span></span><span>&nbsp;=&nbsp;0)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*DECLARAND</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.stub_code_object(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>Block</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:dba(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>scoped&nbsp;block</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;&lt;?[{]&gt;&nbsp;||&nbsp;&lt;.missing:&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>block</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&gt;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.newpad&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;blockoid&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;blockoid&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*CURPAD</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>%*HANDLERS</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.finishpad&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>{YOU_ARE_HERE}</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&lt;you_are_here&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;:dba(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>block</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>{</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;~&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>}</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&lt;statementlist(1)&gt;&nbsp;&lt;?ENDSTMT&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;?terminator&gt;&nbsp;{&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.throw($/,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>X::Syntax::Missing</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;what&nbsp;=&gt;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>block</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;?&gt;&nbsp;{&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.throw($/,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>X::Syntax::Missing</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;what&nbsp;=&gt;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>block</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;</span><span class="variable other basic perl6"><span>$*CURPAD</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.pop_lexpad()&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;unitstart&nbsp;{&nbsp;&lt;?&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;you_are_here&nbsp;{&nbsp;&lt;?&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;newpad&nbsp;{&nbsp;&lt;?&gt;&nbsp;{&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.push_lexpad($/)&nbsp;}&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;finishpad&nbsp;{&nbsp;&lt;?&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;bom&nbsp;{&nbsp;\xFEFF&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>proto</span></span><span>&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;terminator&nbsp;{&nbsp;&lt;...&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;terminator:sym&lt;;&gt;&nbsp;{&nbsp;&lt;?[;]&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;terminator:sym&lt;)&gt;&nbsp;{&nbsp;&lt;?[)]&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;terminator:sym&lt;]&gt;&nbsp;{&nbsp;&lt;?[\]]&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;terminator:sym&lt;}&gt;&nbsp;{&nbsp;&lt;?[}]&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;terminator:sym&lt;ang&gt;&nbsp;{&nbsp;&lt;?[&gt;]&gt;&nbsp;&lt;?{&nbsp;</span><span class="variable other basic perl6"><span>$*IN_REGEX_ASSERTION</span></span><span>&nbsp;}&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;terminator:sym&lt;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>if</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.end_keyword&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;terminator:sym&lt;</span><span class="keyword control conditional perl6"><span>unless</span></span><span>&gt;&nbsp;{&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>unless</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&lt;.end_keyword&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;terminator:sym&lt;</span><span class="keyword control repeat perl6"><span>while</span></span><span>&gt;&nbsp;&nbsp;{&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>while</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&nbsp;&lt;.end_keyword&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;terminator:sym&lt;</span><span class="keyword control repeat perl6"><span>until</span></span><span>&gt;&nbsp;&nbsp;{&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>until</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&nbsp;&lt;.end_keyword&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;terminator:sym&lt;</span><span class="keyword control repeat perl6"><span>for</span></span><span>&gt;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>for</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&nbsp;&nbsp;&nbsp;&lt;.end_keyword&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;terminator:sym&lt;</span><span class="keyword control repeat perl6"><span>given</span></span><span>&gt;&nbsp;&nbsp;{&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>given</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&nbsp;&lt;.end_keyword&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;terminator:sym&lt;</span><span class="keyword control flowcontrol perl6"><span>when</span></span><span>&gt;&nbsp;&nbsp;&nbsp;{&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>when</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&nbsp;&nbsp;&lt;.end_keyword&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;terminator:sym&lt;arrow&gt;&nbsp;&nbsp;{&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>--&gt;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;stdstopper&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;&lt;?MARKED(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>endstmt</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;&nbsp;&lt;?&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;?terminator&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;$</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>##&nbsp;Statement&nbsp;control</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>proto</span></span><span>&nbsp;</span><span class="storage type declare routine perl6"><span>rule</span></span><span>&nbsp;statement_control&nbsp;{&nbsp;&lt;...&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>rule</span></span><span>&nbsp;statement_control:sym&lt;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&lt;.end_keyword&gt;&nbsp;{}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xblock&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>else</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>\h*</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>if</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&lt;.typed_panic:&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>X::Syntax::Malformed::Elsif</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>elif</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;{&nbsp;$/.CURSOR.typed_panic(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>X::Syntax::Malformed::Elsif</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;what&nbsp;=&gt;&nbsp;</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>elif</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>)&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>elsif</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>\</span><span class="keyword operator perl6"><span>s</span></span><span>&nbsp;&lt;xblock&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]*</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>else</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>\</span><span class="keyword operator perl6"><span>s</span></span><span>&nbsp;&lt;</span><span class="keyword control conditional perl6"><span>else</span></span><span>=.pblock&gt;&nbsp;]?</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>rule</span></span><span>&nbsp;statement_control:sym&lt;</span><span class="keyword control conditional perl6"><span>unless</span></span><span>&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&lt;.end_keyword&gt;&nbsp;{}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xblock&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;&lt;!</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>else</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&gt;&nbsp;||&nbsp;&lt;.typed_panic:&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>X::Syntax::UnlessElse</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&gt;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>rule</span></span><span>&nbsp;statement_control:sym&lt;</span><span class="keyword control repeat perl6"><span>while</span></span><span>&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$&lt;sym</span></span><span>&gt;=[</span><span class="keyword control repeat perl6"><span>while</span></span><span>|</span><span class="keyword control repeat perl6"><span>until</span></span><span>]&lt;.end_keyword&gt;&nbsp;{}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xblock&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>rule</span></span><span>&nbsp;statement_control:sym&lt;</span><span class="keyword control repeat perl6"><span>repeat</span></span><span>&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&lt;.end_keyword&gt;&nbsp;{}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;</span><span class="variable other basic perl6"><span>$&lt;wu</span></span><span>&gt;=[</span><span class="keyword control repeat perl6"><span>while</span></span><span>|</span><span class="keyword control repeat perl6"><span>until</span></span><span>]\</span><span class="keyword operator perl6"><span>s</span></span><span>&nbsp;&lt;xblock&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;pblock&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span><span class="variable other basic perl6"><span>$&lt;wu</span></span><span>&gt;=[</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>while</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>|</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>until</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>]\</span><span class="keyword operator perl6"><span>s</span></span><span>&nbsp;||&nbsp;&lt;.missing(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>&quot;while&quot;&nbsp;or&nbsp;&quot;until&quot;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;EXPR&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>rule</span></span><span>&nbsp;statement_control:sym&lt;</span><span class="keyword control repeat perl6"><span>for</span></span><span>&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&lt;.end_keyword&gt;&nbsp;{}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;&lt;?</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>my</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>?&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>\w+&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>(</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.typed_panic:&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>X::Syntax::P5</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&gt;&nbsp;]?</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;&lt;?</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>(</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&lt;.EXPR&gt;?&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&lt;.EXPR&gt;?&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&lt;.EXPR&gt;?&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>)</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.obs(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>C-style&nbsp;&quot;for&nbsp;(;;)&quot;&nbsp;loop</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>&quot;loop&nbsp;(;;)&quot;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;&nbsp;]?</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xblock(1)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>rule</span></span><span>&nbsp;statement_control:sym&lt;foreach&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&lt;.end_keyword&gt;&nbsp;&lt;.obs(</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>&#39;foreach&#39;</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>,&nbsp;</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>&#39;for&#39;</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;statement_control:sym&lt;</span><span class="keyword control repeat perl6"><span>loop</span></span><span>&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&lt;.end_keyword&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;&lt;?[({]&gt;&nbsp;&lt;.sorry:&nbsp;</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>Whitespace&nbsp;required&nbsp;after&nbsp;&#39;loop&#39;</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>&gt;&nbsp;]?</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="keyword operator perl6"><span>s</span></span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>(</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;e1=.EXPR&gt;?&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;e2=.EXPR&gt;?&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;e3=.EXPR&gt;?</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>)</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;]?</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;block&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>rule</span></span><span>&nbsp;statement_control:sym&lt;need&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;version&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;module_name&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]&nbsp;+%&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>,</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control repeat perl6"><span>for</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$&lt;module_name</span></span><span>&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$lnd</span></span><span>&nbsp;&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.dissect_longname(</span><span class="variable other basic perl6"><span>$_</span></span><span>&lt;longname&gt;);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$name</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$lnd</span></span><span>.</span><span class="support function"><span>name</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>%cp</span></span><span>&nbsp;&nbsp;&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$lnd</span></span><span>.colonpairs_hash(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>need</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.load_module($/,&nbsp;</span><span class="variable other basic perl6"><span>$name</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>%cp</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$*GLOBALish</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;statement_control:sym&lt;import&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&nbsp;&lt;.ws&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;module_name&gt;&nbsp;[&nbsp;&lt;.spacey&gt;&nbsp;&lt;arglist&gt;&nbsp;]?&nbsp;&lt;.ws&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*HAS_SELF</span></span><span>&nbsp;:=&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$longname</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.dissect_longname(</span><span class="variable other basic perl6"><span>$&lt;module_name</span></span><span>&gt;&lt;longname&gt;);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$module</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$found</span></span><span>&nbsp;:=&nbsp;0;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control control-handlers perl6"><span>try</span></span><span>&nbsp;{&nbsp;</span><span class="variable other basic perl6"><span>$module</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.find_symbol(</span><span class="variable other basic perl6"><span>$longname</span></span><span>.components());&nbsp;</span><span class="variable other basic perl6"><span>$found</span></span><span>&nbsp;:=&nbsp;1;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$found</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;todo:&nbsp;fix&nbsp;arglist</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$arglist</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$&lt;arglist</span></span><span>&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$arglist</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.compile_time_evaluate($/,&nbsp;</span><span class="variable other basic perl6"><span>$&lt;arglist</span></span><span>&gt;&lt;EXPR&gt;.ast);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$arglist</span></span><span>&nbsp;:=&nbsp;nqp::getattr(</span><span class="variable other basic perl6"><span>$arglist</span></span><span>.list.</span><span class="support function"><span>eager</span></span><span>,</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.find_symbol([</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>List</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>]),&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$!items</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;do_import($/,&nbsp;</span><span class="variable other basic perl6"><span>$module</span></span><span>.</span><span class="support function"><span>WHO</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$longname</span></span><span>.</span><span class="support function"><span>name</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$arglist</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>else</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.panic(</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>Could&nbsp;not&nbsp;find&nbsp;module&nbsp;</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>&nbsp;~&nbsp;~</span><span class="variable other basic perl6"><span>$&lt;module_name</span></span><span>&gt;&nbsp;~</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>&nbsp;to&nbsp;import&nbsp;symbols&nbsp;from</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;statement_control:sym&lt;no&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$longname</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&nbsp;&lt;.ws&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;module_name&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$longname</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$&lt;module_name</span></span><span>&gt;&lt;longname&gt;;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$longname</span></span><span>.</span><span class="support type perl6"><span>Str</span></span><span>&nbsp;</span><span class="keyword operator perl6"><span>eq</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>strict</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;Turn&nbsp;on&nbsp;lax&nbsp;mode.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*STRICT</span></span><span>&nbsp;:=&nbsp;0;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>else</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nqp::</span><span class="keyword control control-handlers perl6"><span>die</span></span><span>(</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>Unknown&nbsp;pragma&nbsp;&#39;$longname&#39;</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.ws&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;statement_control:sym&lt;</span><span class="keyword other include perl6"><span>use</span></span><span>&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$longname</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*IN_DECL</span></span><span>&nbsp;:=&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>use</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*HAS_SELF</span></span><span>&nbsp;:=&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*SCOPE</span></span><span>&nbsp;&nbsp;&nbsp;:=&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>use</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$OLD_MAIN</span></span><span>&nbsp;:=&nbsp;~</span><span class="variable other basic perl6"><span>$*MAIN</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$&lt;doc</span></span><span>&gt;=[&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>DOC</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;\h+&nbsp;]**0..1</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&nbsp;&lt;.ws&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;version&gt;&nbsp;[&nbsp;&lt;?{&nbsp;~</span><span class="variable other basic perl6"><span>$&lt;version</span></span><span>&gt;&lt;vnum&gt;[0]&nbsp;</span><span class="keyword operator perl6"><span>eq</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>5</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;}&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$module</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.load_module($/,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>Perl5</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;{},&nbsp;</span><span class="variable other basic perl6"><span>$*GLOBALish</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;do_import($/,&nbsp;</span><span class="variable other basic perl6"><span>$module</span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>Perl5</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.import_EXPORTHOW($/,&nbsp;</span><span class="variable other basic perl6"><span>$module</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;]?</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;&lt;?{&nbsp;~</span><span class="variable other basic perl6"><span>$&lt;version</span></span><span>&gt;&lt;vnum&gt;[0]&nbsp;</span><span class="keyword operator perl6"><span>eq</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>6</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;}&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*MAIN</span></span><span>&nbsp;&nbsp;&nbsp;:=&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>MAIN</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*STRICT</span></span><span>&nbsp;:=&nbsp;1&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*begin_compunit</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;]?</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;module_name&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$longname</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$&lt;module_name</span></span><span>&gt;&lt;longname&gt;;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;Some&nbsp;modules&nbsp;are&nbsp;handled&nbsp;in&nbsp;the&nbsp;actions&nbsp;are&nbsp;just&nbsp;turn&nbsp;on&nbsp;a</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;setting&nbsp;of&nbsp;some&nbsp;kind.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$longname</span></span><span>.</span><span class="support type perl6"><span>Str</span></span><span>&nbsp;</span><span class="keyword operator perl6"><span>eq</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>MONKEY_TYPING</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*MONKEY_TYPING</span></span><span>&nbsp;:=&nbsp;1;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$longname</span></span><span>&nbsp;:=&nbsp;</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>elsif</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$longname</span></span><span>.</span><span class="support type perl6"><span>Str</span></span><span>&nbsp;</span><span class="keyword operator perl6"><span>eq</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>soft</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;This&nbsp;is&nbsp;an&nbsp;approximation;&nbsp;need&nbsp;to&nbsp;pay&nbsp;attention&nbsp;to&nbsp;argument</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;list&nbsp;really.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*SOFT</span></span><span>&nbsp;:=&nbsp;1;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$longname</span></span><span>&nbsp;:=&nbsp;</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>elsif</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$longname</span></span><span>.</span><span class="support type perl6"><span>Str</span></span><span>&nbsp;</span><span class="keyword operator perl6"><span>eq</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>strict</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;Turn&nbsp;off&nbsp;lax&nbsp;mode.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*STRICT</span></span><span>&nbsp;&nbsp;:=&nbsp;1;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$longname</span></span><span>&nbsp;:=&nbsp;</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>elsif</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$longname</span></span><span>.</span><span class="support type perl6"><span>Str</span></span><span>&nbsp;</span><span class="keyword operator perl6"><span>eq</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>FORBID_PIR</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;||</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$longname</span></span><span>.</span><span class="support type perl6"><span>Str</span></span><span>&nbsp;</span><span class="keyword operator perl6"><span>eq</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>Devel::Trace</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;||</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$longname</span></span><span>.</span><span class="support type perl6"><span>Str</span></span><span>&nbsp;</span><span class="keyword operator perl6"><span>eq</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>fatal</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$longname</span></span><span>&nbsp;:=&nbsp;</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;&lt;.spacey&gt;&nbsp;&lt;arglist&gt;&nbsp;&lt;?{&nbsp;</span><span class="variable other basic perl6"><span>$&lt;arglist</span></span><span>&gt;&lt;EXPR&gt;&nbsp;}&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$lnd</span></span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.dissect_longname(</span><span class="variable other basic perl6"><span>$longname</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$name</span></span><span>&nbsp;&nbsp;&nbsp;&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$lnd</span></span><span>.</span><span class="support function"><span>name</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>%cp</span></span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$lnd</span></span><span>.colonpairs_hash(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>use</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$arglist</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.compile_time_evaluate($/,</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$&lt;arglist</span></span><span>&gt;&lt;EXPR&gt;.ast);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$arglist</span></span><span>&nbsp;&nbsp;&nbsp;&nbsp;:=&nbsp;nqp::getattr(</span><span class="variable other basic perl6"><span>$arglist</span></span><span>.list.</span><span class="support function"><span>eager</span></span><span>,</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.find_symbol([</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>List</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>]),&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$!items</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$module</span></span><span>&nbsp;&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.load_module($/,&nbsp;</span><span class="variable other basic perl6"><span>$name</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>%cp</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$*GLOBALish</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;do_import($/,&nbsp;</span><span class="variable other basic perl6"><span>$module</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$name</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$arglist</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.import_EXPORTHOW($/,&nbsp;</span><span class="variable other basic perl6"><span>$module</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;{&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>unless</span></span><span>&nbsp;~</span><span class="variable other basic perl6"><span>$&lt;doc</span></span><span>&gt;&nbsp;&amp;&amp;&nbsp;!</span><span class="variable other basic perl6"><span>%*COMPILING</span></span><span>&lt;</span><span class="variable other basic perl6"><span>%?OPTIONS</span></span><span>&gt;&lt;doc&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$longname</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$lnd</span></span><span>&nbsp;&nbsp;&nbsp;&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.dissect_longname(</span><span class="variable other basic perl6"><span>$longname</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$name</span></span><span>&nbsp;&nbsp;&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$lnd</span></span><span>.</span><span class="support function"><span>name</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>%cp</span></span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$lnd</span></span><span>.colonpairs_hash(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>use</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$module</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.load_module($/,&nbsp;</span><span class="variable other basic perl6"><span>$name</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>%cp</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$*GLOBALish</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;do_import($/,&nbsp;</span><span class="variable other basic perl6"><span>$module</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$name</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.import_EXPORTHOW($/,&nbsp;</span><span class="variable other basic perl6"><span>$module</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;&lt;?{&nbsp;</span><span class="variable other basic perl6"><span>$*MAIN</span></span><span>&nbsp;</span><span class="keyword operator perl6"><span>ne</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$OLD_MAIN</span></span><span>&nbsp;}&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.eat_terminator&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;statementlist=.FOREIGN_LANG(</span><span class="variable other basic perl6"><span>$*MAIN</span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>statementlist</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;1)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;&lt;?&gt;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.ws&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;This&nbsp;is&nbsp;like&nbsp;HLL::Grammar.LANG&nbsp;but&nbsp;it&nbsp;allows&nbsp;to&nbsp;call&nbsp;a&nbsp;token&nbsp;of&nbsp;a&nbsp;Perl&nbsp;6&nbsp;level&nbsp;grammar.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>method</span></span><span>&nbsp;FOREIGN_LANG(</span><span class="variable other basic perl6"><span>$lang</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$regex</span></span><span>,&nbsp;*</span><span class="variable other basic perl6"><span>@args</span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;nqp::istype(</span><span class="variable other basic perl6"><span>%*LANG</span></span><span>{</span><span class="variable other basic perl6"><span>$lang</span></span><span>},&nbsp;NQPCursor)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control flowcontrol perl6"><span>return</span></span><span>&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.LANG(</span><span class="variable other basic perl6"><span>$lang</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$regex</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>@args</span></span><span>)</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>else</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$Str</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.find_symbol([</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>Str</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>]);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$lang_cursor</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>%*LANG</span></span><span>{</span><span class="variable other basic perl6"><span>$lang</span></span><span>}.</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>!cursor_init</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>(</span><span class="variable other basic perl6"><span>$Str</span></span><span>.</span><span class="support function"><span>new</span></span><span>(&nbsp;:</span><span class="support function"><span>value</span></span><span>(</span><span class="variable language perl6"><span>self</span></span><span>.orig())),&nbsp;:p(</span><span class="variable language perl6"><span>self</span></span><span>.</span><span class="support function"><span>pos</span></span><span>()));</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.</span><span class="support function"><span>HOW</span></span><span>.traced(</span><span class="variable language perl6"><span>self</span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$lang_cursor</span></span><span>.</span><span class="support function"><span>HOW</span></span><span>.trace-on(</span><span class="variable other basic perl6"><span>$lang_cursor</span></span><span>,&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.</span><span class="support function"><span>HOW</span></span><span>.trace_depth(</span><span class="variable language perl6"><span>self</span></span><span>));</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*ACTIONS</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>%*LANG</span></span><span>{</span><span class="variable other basic perl6"><span>$lang</span></span><span>&nbsp;~&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>-actions</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>};</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$ret</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$lang_cursor</span></span><span>.</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>$regex</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>(|</span><span class="variable other basic perl6"><span>@args</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;Build&nbsp;up&nbsp;something&nbsp;NQP-levelish&nbsp;we&nbsp;can&nbsp;return.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$new</span></span><span>&nbsp;:=&nbsp;NQPCursor.</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>!cursor_init</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>(</span><span class="variable language perl6"><span>self</span></span><span>.orig(),&nbsp;:p(</span><span class="variable language perl6"><span>self</span></span><span>.</span><span class="support function"><span>pos</span></span><span>()),&nbsp;:shared(</span><span class="variable language perl6"><span>self</span></span><span>.</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>!shared</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>()));</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$p6cursor</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.find_symbol([</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>Cursor</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>]);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nqp::bindattr_i(</span><span class="variable other basic perl6"><span>$new</span></span><span>,&nbsp;NQPCursor,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$!from</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;&nbsp;nqp::getattr_i(</span><span class="variable other basic perl6"><span>$ret</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$p6cursor</span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$!from</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>));</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nqp::bindattr_i(</span><span class="variable other basic perl6"><span>$new</span></span><span>,&nbsp;NQPCursor,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$!pos</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;&nbsp;&nbsp;nqp::getattr_i(</span><span class="variable other basic perl6"><span>$ret</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$p6cursor</span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$!pos</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>));</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nqp::bindattr(</span><span class="variable other basic perl6"><span>$new</span></span><span>,&nbsp;&nbsp;&nbsp;NQPCursor,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$!name</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;&nbsp;nqp::getattr(</span><span class="variable other basic perl6"><span>$ret</span></span><span>,&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$p6cursor</span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$!name</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>));</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$match</span></span><span>&nbsp;:=&nbsp;nqp::create(NQPMatch);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nqp::bindattr(</span><span class="variable other basic perl6"><span>$match</span></span><span>,&nbsp;NQPMatch,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$!made</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;nqp::getattr(</span><span class="variable other basic perl6"><span>$ret</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$p6cursor</span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$!made</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>));</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nqp::bindattr(</span><span class="variable other basic perl6"><span>$new</span></span><span>,&nbsp;NQPCursor,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$!match</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$match</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$new</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>sub</span></span><span>&nbsp;do_import($/,&nbsp;</span><span class="variable other basic perl6"><span>$module</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$package_source_name</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$arglist</span></span><span>?)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;nqp::existskey(</span><span class="variable other basic perl6"><span>$module</span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>EXPORT</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$EXPORT</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.stash_hash(</span><span class="variable other basic perl6"><span>$module</span></span><span>&lt;EXPORT&gt;);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>@to_import</span></span><span>&nbsp;:=&nbsp;[</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>MANDATORY</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>];</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>@positional_imports</span></span><span>&nbsp;:=&nbsp;[];</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;nqp::</span><span class="support function"><span>defined</span></span><span>(</span><span class="variable other basic perl6"><span>$arglist</span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$Pair</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.find_symbol([</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>Pair</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>]);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control repeat perl6"><span>for</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$arglist</span></span><span>&nbsp;-&gt;&nbsp;</span><span class="variable other basic perl6"><span>$tag</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;nqp::istype(</span><span class="variable other basic perl6"><span>$tag</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$Pair</span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$tag</span></span><span>&nbsp;:=&nbsp;nqp::unbox_s(</span><span class="variable other basic perl6"><span>$tag</span></span><span>.</span><span class="support function"><span>key</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;nqp::existskey(</span><span class="variable other basic perl6"><span>$EXPORT</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$tag</span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.import($/,&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.stash_hash(</span><span class="variable other basic perl6"><span>$EXPORT</span></span><span>{</span><span class="variable other basic perl6"><span>$tag</span></span><span>}),&nbsp;</span><span class="variable other basic perl6"><span>$package_source_name</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>else</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nqp::</span><span class="keyword control control-handlers perl6"><span>die</span></span><span>(</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>Error&nbsp;while&nbsp;importing&nbsp;from&nbsp;&#39;$package_source_name&#39;:&nbsp;no&nbsp;such&nbsp;tag&nbsp;&#39;$tag&#39;</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>else</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nqp::</span><span class="support function"><span>push</span></span><span>(</span><span class="variable other basic perl6"><span>@positional_imports</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$tag</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>else</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nqp::</span><span class="support function"><span>push</span></span><span>(</span><span class="variable other basic perl6"><span>@to_import</span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>DEFAULT</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control repeat perl6"><span>for</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>@to_import</span></span><span>&nbsp;-&gt;&nbsp;</span><span class="variable other basic perl6"><span>$tag</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;nqp::existskey(</span><span class="variable other basic perl6"><span>$EXPORT</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$tag</span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.import($/,&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.stash_hash(</span><span class="variable other basic perl6"><span>$EXPORT</span></span><span>{</span><span class="variable other basic perl6"><span>$tag</span></span><span>}),&nbsp;</span><span class="variable other basic perl6"><span>$package_source_name</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;nqp::existskey(</span><span class="variable other basic perl6"><span>$module</span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>&amp;EXPORT</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$result</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$module</span></span><span>&lt;</span><span class="variable other basic perl6"><span>&amp;EXPORT</span></span><span>&gt;(|</span><span class="variable other basic perl6"><span>@positional_imports</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$EnumMap</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.find_symbol([</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>EnumMap</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>]);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;nqp::istype(</span><span class="variable other basic perl6"><span>$result</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$EnumMap</span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$storage</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$result</span></span><span>.hash.FLATTENABLE_HASH();</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.import($/,&nbsp;</span><span class="variable other basic perl6"><span>$storage</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$package_source_name</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>else</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nqp::</span><span class="keyword control control-handlers perl6"><span>die</span></span><span>(</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>&amp;EXPORT&nbsp;sub&nbsp;did&nbsp;not&nbsp;return&nbsp;an&nbsp;EnumMap</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>else</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;+</span><span class="variable other basic perl6"><span>@positional_imports</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nqp::</span><span class="keyword control control-handlers perl6"><span>die</span></span><span>(</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>Error&nbsp;while&nbsp;importing&nbsp;from&nbsp;&#39;$package_source_name&#39;:&nbsp;no&nbsp;EXPORT&nbsp;sub,&nbsp;but&nbsp;you&nbsp;provided&nbsp;positional&nbsp;argument&nbsp;in&nbsp;the&nbsp;&#39;use&#39;&nbsp;statement</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>rule</span></span><span>&nbsp;statement_control:sym&lt;</span><span class="keyword other include perl6"><span>require</span></span><span>&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;module_name&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;file=.variable&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;!sigil&gt;&nbsp;&lt;file=.term&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;EXPR&gt;?</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>rule</span></span><span>&nbsp;statement_control:sym&lt;</span><span class="keyword control repeat perl6"><span>given</span></span><span>&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&lt;.end_keyword&gt;&nbsp;&lt;xblock(1)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>rule</span></span><span>&nbsp;statement_control:sym&lt;</span><span class="keyword control flowcontrol perl6"><span>when</span></span><span>&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&lt;.end_keyword&gt;&nbsp;&lt;xblock&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>rule</span></span><span>&nbsp;statement_control:sym&lt;</span><span class="keyword control flowcontrol perl6"><span>default</span></span><span>&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&lt;.end_keyword&gt;&nbsp;&lt;block&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>rule</span></span><span>&nbsp;statement_control:sym&lt;</span><span class="meta function perl6"><span>CATCH</span></span><span>&gt;&nbsp;{&lt;sym&gt;&nbsp;&lt;block(1)&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>rule</span></span><span>&nbsp;statement_control:sym&lt;</span><span class="meta function perl6"><span>CONTROL</span></span><span>&gt;&nbsp;{&lt;sym&gt;&nbsp;&lt;block(1)&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>proto</span></span><span>&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;statement_prefix&nbsp;{&nbsp;&lt;...&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;statement_prefix:sym&lt;</span><span class="meta function perl6"><span>BEGIN</span></span><span>&gt;&nbsp;&nbsp;&nbsp;{&nbsp;&lt;sym&gt;&nbsp;&lt;blorst&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;statement_prefix:sym&lt;COMPOSE&gt;&nbsp;{&nbsp;&lt;sym&gt;&nbsp;&lt;blorst&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;statement_prefix:sym&lt;</span><span class="meta function perl6"><span>TEMP</span></span><span>&gt;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&lt;sym&gt;&nbsp;&lt;blorst&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;statement_prefix:sym&lt;</span><span class="meta function perl6"><span>CHECK</span></span><span>&gt;&nbsp;&nbsp;&nbsp;{&nbsp;&lt;sym&gt;&nbsp;&lt;blorst&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;statement_prefix:sym&lt;</span><span class="meta function perl6"><span>INIT</span></span><span>&gt;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&lt;sym&gt;&nbsp;&lt;blorst&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;statement_prefix:sym&lt;</span><span class="meta function perl6"><span>ENTER</span></span><span>&gt;&nbsp;&nbsp;&nbsp;{&nbsp;&lt;sym&gt;&nbsp;&lt;blorst&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;statement_prefix:sym&lt;</span><span class="meta function perl6"><span>FIRST</span></span><span>&gt;&nbsp;&nbsp;&nbsp;{&nbsp;&lt;sym&gt;&nbsp;&lt;blorst&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;statement_prefix:sym&lt;</span><span class="meta function perl6"><span>END</span></span><span>&gt;&nbsp;&nbsp;&nbsp;{&nbsp;&lt;sym&gt;&nbsp;&lt;blorst&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;statement_prefix:sym&lt;</span><span class="meta function perl6"><span>LEAVE</span></span><span>&gt;&nbsp;{&nbsp;&lt;sym&gt;&nbsp;&lt;blorst&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;statement_prefix:sym&lt;</span><span class="meta function perl6"><span>KEEP</span></span><span>&gt;&nbsp;&nbsp;{&nbsp;&lt;sym&gt;&nbsp;&lt;blorst&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;statement_prefix:sym&lt;</span><span class="meta function perl6"><span>UNDO</span></span><span>&gt;&nbsp;&nbsp;{&nbsp;&lt;sym&gt;&nbsp;&lt;blorst&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;statement_prefix:sym&lt;</span><span class="meta function perl6"><span>NEXT</span></span><span>&gt;&nbsp;&nbsp;{&nbsp;&lt;sym&gt;&nbsp;&lt;blorst&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;statement_prefix:sym&lt;</span><span class="meta function perl6"><span>LAST</span></span><span>&gt;&nbsp;&nbsp;{&nbsp;&lt;sym&gt;&nbsp;&lt;blorst&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;statement_prefix:sym&lt;</span><span class="meta function perl6"><span>PRE</span></span><span>&gt;&nbsp;&nbsp;&nbsp;{&nbsp;&lt;sym&gt;&nbsp;&lt;blorst&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;statement_prefix:sym&lt;</span><span class="meta function perl6"><span>POST</span></span><span>&gt;&nbsp;&nbsp;{&nbsp;&lt;sym&gt;&nbsp;&lt;blorst&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;statement_prefix:sym&lt;</span><span class="support function"><span>eager</span></span><span>&gt;&nbsp;{&nbsp;&lt;sym&gt;&nbsp;&lt;blorst&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;statement_prefix:sym&lt;</span><span class="support function"><span>lazy</span></span><span>&gt;&nbsp;&nbsp;{&nbsp;&lt;sym&gt;&nbsp;&lt;blorst&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;statement_prefix:sym&lt;sink&gt;&nbsp;&nbsp;{&nbsp;&lt;sym&gt;&nbsp;&lt;blorst&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;statement_prefix:sym&lt;</span><span class="keyword control control-handlers perl6"><span>try</span></span><span>&gt;&nbsp;&nbsp;&nbsp;{&nbsp;&lt;sym&gt;&nbsp;&lt;blorst&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;statement_prefix:sym&lt;</span><span class="keyword control repeat perl6"><span>gather</span></span><span>&gt;{&nbsp;&lt;sym&gt;&nbsp;&lt;blorst&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;statement_prefix:sym&lt;</span><span class="support function"><span>once</span></span><span>&gt;&nbsp;&nbsp;{&nbsp;&lt;sym&gt;&nbsp;&lt;blorst&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;statement_prefix:sym&lt;</span><span class="keyword control flowcontrol perl6"><span>do</span></span><span>&gt;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&lt;sym&gt;&nbsp;&lt;blorst&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;statement_prefix:sym&lt;DOC&gt;&nbsp;&nbsp;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&nbsp;\</span><span class="keyword operator perl6"><span>s</span></span><span>&nbsp;&lt;.ws&gt;&nbsp;</span><span class="variable other basic perl6"><span>$&lt;phase</span></span><span>&gt;=[</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>BEGIN</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;||&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>CHECK</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;||&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>INIT</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;blorst&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;blorst&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\</span><span class="keyword operator perl6"><span>s</span></span><span>&nbsp;&lt;.ws&gt;&nbsp;[&nbsp;&lt;?[{]&gt;&nbsp;&lt;block&gt;&nbsp;|&nbsp;&lt;![;]&gt;&nbsp;&lt;statement&gt;&nbsp;||&nbsp;&lt;.missing:&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>block&nbsp;or&nbsp;statement</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&gt;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>##&nbsp;Statement&nbsp;modifiers</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>proto</span></span><span>&nbsp;</span><span class="storage type declare routine perl6"><span>rule</span></span><span>&nbsp;statement_mod_cond&nbsp;{&nbsp;&lt;...&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;modifier_expr&nbsp;{&nbsp;&lt;EXPR&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>rule</span></span><span>&nbsp;statement_mod_cond:sym&lt;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&lt;sym&gt;&nbsp;&lt;modifier_expr&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>rule</span></span><span>&nbsp;statement_mod_cond:sym&lt;</span><span class="keyword control conditional perl6"><span>unless</span></span><span>&gt;&nbsp;{&nbsp;&lt;sym&gt;&nbsp;&lt;modifier_expr&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>rule</span></span><span>&nbsp;statement_mod_cond:sym&lt;</span><span class="keyword control flowcontrol perl6"><span>when</span></span><span>&gt;&nbsp;&nbsp;&nbsp;{&nbsp;&lt;sym&gt;&nbsp;&lt;modifier_expr&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>proto</span></span><span>&nbsp;</span><span class="storage type declare routine perl6"><span>rule</span></span><span>&nbsp;statement_mod_loop&nbsp;{&nbsp;&lt;...&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>rule</span></span><span>&nbsp;statement_mod_loop:sym&lt;</span><span class="keyword control repeat perl6"><span>while</span></span><span>&gt;&nbsp;{&nbsp;&lt;sym&gt;&nbsp;&lt;smexpr=.EXPR&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>rule</span></span><span>&nbsp;statement_mod_loop:sym&lt;</span><span class="keyword control repeat perl6"><span>until</span></span><span>&gt;&nbsp;{&nbsp;&lt;sym&gt;&nbsp;&lt;smexpr=.EXPR&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>rule</span></span><span>&nbsp;statement_mod_loop:sym&lt;</span><span class="keyword control repeat perl6"><span>for</span></span><span>&gt;&nbsp;&nbsp;&nbsp;{&nbsp;&lt;sym&gt;&nbsp;&lt;smexpr=.EXPR&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>rule</span></span><span>&nbsp;statement_mod_loop:sym&lt;</span><span class="keyword control repeat perl6"><span>given</span></span><span>&gt;&nbsp;{&nbsp;&lt;sym&gt;&nbsp;&lt;smexpr=.EXPR&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>##&nbsp;Terms</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;term:sym&lt;fatarrow&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&lt;fatarrow&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;term:sym&lt;colonpair&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&lt;colonpair&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;term:sym&lt;variable&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&lt;variable&gt;&nbsp;{&nbsp;</span><span class="variable other basic perl6"><span>$*VAR</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$&lt;variable</span></span><span>&gt;&nbsp;}&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;term:sym&lt;package_declarator&gt;&nbsp;{&nbsp;&lt;package_declarator&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;term:sym&lt;scope_declarator&gt;&nbsp;&nbsp;&nbsp;{&nbsp;&lt;scope_declarator&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;term:sym&lt;routine_declarator&gt;&nbsp;{&nbsp;&lt;routine_declarator&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;term:sym&lt;multi_declarator&gt;&nbsp;&nbsp;&nbsp;{&nbsp;&lt;?</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>multi</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>|</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>proto</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>|</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>only</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&gt;&nbsp;&lt;multi_declarator&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;term:sym&lt;regex_declarator&gt;&nbsp;&nbsp;&nbsp;{&nbsp;&lt;regex_declarator&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;term:sym&lt;</span><span class="support function"><span>circumfix</span></span><span>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&lt;</span><span class="support function"><span>circumfix</span></span><span>&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;term:sym&lt;statement_prefix&gt;&nbsp;&nbsp;&nbsp;{&nbsp;&lt;statement_prefix&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;term:sym&lt;**&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&lt;sym&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;term:sym&lt;*&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&lt;sym&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;term:sym&lt;lambda&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&lt;?lambda&gt;&nbsp;&lt;pblock&gt;&nbsp;{</span><span class="variable other basic perl6"><span>$*BORG</span></span><span>&lt;block&gt;&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$&lt;pblock</span></span><span>&gt;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;nqp::ishash(</span><span class="variable other basic perl6"><span>$*BORG</span></span><span>)}&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;term:sym&lt;type_declarator&gt;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&lt;type_declarator&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;term:sym&lt;</span><span class="support function"><span>value</span></span><span>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&lt;</span><span class="support function"><span>value</span></span><span>&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;term:sym&lt;unquote&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>{{{</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&lt;?{&nbsp;</span><span class="variable other basic perl6"><span>$*IN_QUASI</span></span><span>&nbsp;}&gt;&nbsp;&lt;statementlist&gt;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>}}}</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;term:sym&lt;::?IDENT&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$&lt;sym</span></span><span>&gt;&nbsp;=&nbsp;[&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>::?</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&lt;identifier&gt;&nbsp;]&nbsp;»</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;</span><span class="support function"><span>infix</span></span><span>:sym&lt;lambda&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;?</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>{</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;|&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>-&gt;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&gt;&nbsp;&lt;!{&nbsp;</span><span class="variable other basic perl6"><span>$*IN_META</span></span><span>&nbsp;}&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$needparens</span></span><span>&nbsp;:=&nbsp;0;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$pos</span></span><span>&nbsp;:=&nbsp;$/.</span><span class="support function"><span>from</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$line</span></span><span>&nbsp;:=&nbsp;HLL::Compiler.lineof($/.orig,&nbsp;$/.</span><span class="support function"><span>from</span></span><span>,&nbsp;:cache(1));</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$lex</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.cur_lexpad();</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control repeat perl6"><span>for</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>if</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>unless</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>while</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>until</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>for</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>given</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>when</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>loop</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>sub</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>method</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$needparens</span></span><span>++&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$_</span></span><span>&nbsp;</span><span class="keyword operator perl6"><span>eq</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>loop</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$m</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>%*MYSTERY</span></span><span>{</span><span class="variable other basic perl6"><span>$_</span></span><span>&nbsp;~&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>-</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;~&nbsp;</span><span class="variable other basic perl6"><span>$lex</span></span><span>.cuid};</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control flowcontrol perl6"><span>next</span></span><span>&nbsp;</span><span class="keyword control conditional perl6"><span>unless</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$m</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$m_pos</span></span><span>&nbsp;&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$m</span></span><span>&lt;</span><span class="support function"><span>pos</span></span><span>&gt;[nqp::</span><span class="support function"><span>elems</span></span><span>(</span><span class="variable other basic perl6"><span>$m</span></span><span>&lt;</span><span class="support function"><span>pos</span></span><span>&gt;)&nbsp;-&nbsp;1];</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$m_line</span></span><span>&nbsp;:=&nbsp;HLL::Compiler.lineof($/.orig,&nbsp;</span><span class="variable other basic perl6"><span>$m_pos</span></span><span>,&nbsp;:cache(1));</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$line</span></span><span>&nbsp;-&nbsp;</span><span class="variable other basic perl6"><span>$m_line</span></span><span>&nbsp;&lt;&nbsp;5&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$m</span></span><span>&lt;ctx&gt;&nbsp;</span><span class="keyword operator perl6"><span>eq</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>(</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>!clear_highwater</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>();</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>!cursor_pos</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>(</span><span class="variable other basic perl6"><span>$m_pos</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.typed_sorry(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>X::Syntax::KeywordAsFunction</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;word&nbsp;=&gt;&nbsp;</span><span class="variable other basic perl6"><span>$_</span></span><span>,</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="variable other basic perl6"><span>$needparens</span></span><span>,</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>!cursor_pos</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>(</span><span class="variable other basic perl6"><span>$pos</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.panic(</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>Unexpected&nbsp;block&nbsp;in&nbsp;infix&nbsp;position&nbsp;(two&nbsp;terms&nbsp;in&nbsp;a&nbsp;row)</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>else</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>!clear_highwater</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>();</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>!cursor_pos</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>(</span><span class="variable other basic perl6"><span>$m_pos</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.sorry(</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>Word&nbsp;&#39;$_&#39;&nbsp;interpreted&nbsp;as&nbsp;a&nbsp;listop;&nbsp;please&nbsp;use&nbsp;&#39;do&nbsp;$_&#39;&nbsp;to&nbsp;introduce&nbsp;the&nbsp;statement&nbsp;control&nbsp;word</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>!cursor_pos</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>(</span><span class="variable other basic perl6"><span>$pos</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.panic(</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>Unexpected&nbsp;block&nbsp;in&nbsp;infix&nbsp;position&nbsp;(two&nbsp;terms&nbsp;in&nbsp;a&nbsp;row)</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;&lt;!{&nbsp;</span><span class="variable other basic perl6"><span>$*IN_REDUCE</span></span><span>&nbsp;}&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.panic(</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>Unexpected&nbsp;block&nbsp;in&nbsp;infix&nbsp;position&nbsp;(two&nbsp;terms&nbsp;in&nbsp;a&nbsp;row,&nbsp;or&nbsp;previous&nbsp;statement&nbsp;missing&nbsp;semicolon?)</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;&lt;!&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;term:sym&lt;</span><span class="support function"><span>undef</span></span><span>&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&nbsp;&gt;&gt;&nbsp;{}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;&lt;?</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;\h*</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$/</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.obs(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$/&nbsp;variable&nbsp;as&nbsp;input&nbsp;record&nbsp;separator</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>the&nbsp;filehandle&#39;s&nbsp;.slurp&nbsp;method</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]?</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;&lt;?</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;[&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>(</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;||&nbsp;\h*&lt;sigil&gt;&lt;twigil&gt;?\w&nbsp;]&nbsp;&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.obs(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>undef&nbsp;as&nbsp;a&nbsp;verb</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>undefine&nbsp;function&nbsp;or&nbsp;assignment&nbsp;of&nbsp;Nil</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]?</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.obs(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>undef&nbsp;as&nbsp;a&nbsp;value</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>something&nbsp;more&nbsp;specific:</span><span class="constant character escape perl6"><span>\n</span><span>\t</span></span><span>an&nbsp;undefined&nbsp;type&nbsp;object&nbsp;such&nbsp;as&nbsp;Any&nbsp;or&nbsp;Int,</span><span class="constant character escape perl6"><span>\n</span><span>\t</span></span><span>:!defined&nbsp;as&nbsp;a&nbsp;matcher,</span><span class="constant character escape perl6"><span>\n</span><span>\t</span></span><span>Any:U&nbsp;as&nbsp;a&nbsp;type&nbsp;constraint,</span><span class="constant character escape perl6"><span>\n</span><span>\t</span></span><span>Nil&nbsp;as&nbsp;the&nbsp;absence&nbsp;of&nbsp;an&nbsp;expected&nbsp;value</span><span class="constant character escape perl6"><span>\n</span><span>\t</span></span><span>or&nbsp;fail()&nbsp;as&nbsp;a&nbsp;failure&nbsp;return</span><span class="constant character escape perl6"><span>\n</span><span>\t</span></span><span>&nbsp;&nbsp;&nbsp;</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;term:sym&lt;</span><span class="support function"><span>new</span></span><span>&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>new</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;\h+&nbsp;&lt;longname&gt;&nbsp;\h*&nbsp;&lt;![:]&gt;&nbsp;&lt;.obs(</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>C++&nbsp;constructor&nbsp;syntax</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>,&nbsp;</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>method&nbsp;call&nbsp;syntax</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;fatarrow&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span class="support function"><span>key</span></span><span>=.identifier&gt;&nbsp;\h*&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>=&gt;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&lt;.ws&gt;&nbsp;&lt;val=.EXPR(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>i=</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;coloncircumfix(</span><span class="variable other basic perl6"><span>$front</span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>&lt;&gt;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&lt;.worry(</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>Pair&nbsp;with&nbsp;&lt;&gt;&nbsp;really&nbsp;means&nbsp;an&nbsp;empty&nbsp;list,&nbsp;not&nbsp;null&nbsp;string;&nbsp;use&nbsp;:$front</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>&nbsp;~&nbsp;</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>(&#39;&#39;)&nbsp;to&nbsp;represent&nbsp;the&nbsp;null&nbsp;string,</span><span class="constant character escape perl6"><span>\n</span></span><span>&nbsp;&nbsp;or&nbsp;:$front</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>&nbsp;~&nbsp;</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>()&nbsp;to&nbsp;represent&nbsp;the&nbsp;empty&nbsp;list&nbsp;more&nbsp;accurately</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;{}&nbsp;&lt;</span><span class="support function"><span>circumfix</span></span><span>&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;colonpair&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*key</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*value</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>:</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:dba(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>colon&nbsp;pair</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>!</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;[&nbsp;&lt;identifier&gt;&nbsp;||&nbsp;&lt;.panic:&nbsp;</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>Malformed&nbsp;False&nbsp;pair;&nbsp;expected&nbsp;identifier</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>&gt;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;&lt;[&nbsp;\[&nbsp;\(&nbsp;\&lt;&nbsp;\{&nbsp;]&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.typed_panic(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>X::Syntax::NegatedPair</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="support function"><span>key</span></span><span>&nbsp;=&gt;&nbsp;~</span><span class="variable other basic perl6"><span>$&lt;identifier</span></span><span>&gt;)&nbsp;}&nbsp;]?</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;</span><span class="variable other basic perl6"><span>$*key</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$&lt;identifier</span></span><span>&gt;.</span><span class="support type perl6"><span>Str</span></span><span>;&nbsp;</span><span class="variable other basic perl6"><span>$*value</span></span><span>&nbsp;:=&nbsp;0;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;</span><span class="variable other basic perl6"><span>$&lt;num</span></span><span>&gt;&nbsp;=&nbsp;[\d+]&nbsp;&lt;identifier&gt;&nbsp;[&nbsp;&lt;?</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;&lt;[&nbsp;\[&nbsp;\(&nbsp;\&lt;&nbsp;\{&nbsp;]&gt;&gt;&nbsp;{}&nbsp;&lt;.sorry(</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>Extra&nbsp;argument&nbsp;not&nbsp;allowed;&nbsp;pair&nbsp;already&nbsp;has&nbsp;argument&nbsp;of&nbsp;</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>&nbsp;~&nbsp;</span><span class="variable other basic perl6"><span>$&lt;num</span></span><span>&gt;.</span><span class="support type perl6"><span>Str</span></span><span>)&gt;&nbsp;&lt;.</span><span class="support function"><span>circumfix</span></span><span>&gt;&nbsp;]?</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;</span><span class="variable other basic perl6"><span>$*key</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$&lt;identifier</span></span><span>&gt;.</span><span class="support type perl6"><span>Str</span></span><span>;&nbsp;</span><span class="variable other basic perl6"><span>$*value</span></span><span>&nbsp;:=&nbsp;+</span><span class="variable other basic perl6"><span>$&lt;num</span></span><span>&gt;;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;identifier&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;</span><span class="variable other basic perl6"><span>$*key</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$&lt;identifier</span></span><span>&gt;.</span><span class="support type perl6"><span>Str</span></span><span>;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;&lt;.unsp&gt;?&nbsp;:dba(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>pair&nbsp;value</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&nbsp;&lt;coloncircumfix(</span><span class="variable other basic perl6"><span>$*key</span></span><span>)&gt;&nbsp;{&nbsp;</span><span class="variable other basic perl6"><span>$*value</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$&lt;coloncircumfix</span></span><span>&gt;;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;{&nbsp;</span><span class="variable other basic perl6"><span>$*value</span></span><span>&nbsp;:=&nbsp;1;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;:dba(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>signature</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>(</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;~&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>)</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&lt;fakesignature&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;coloncircumfix(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;</span><span class="variable other basic perl6"><span>$*key</span></span><span>&nbsp;:=&nbsp;</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>;&nbsp;</span><span class="variable other basic perl6"><span>$*value</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$&lt;coloncircumfix</span></span><span>&gt;;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;var=.colonpair_variable&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;</span><span class="variable other basic perl6"><span>$*key</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$&lt;var</span></span><span>&gt;&lt;desigilname&gt;.</span><span class="support type perl6"><span>Str</span></span><span>;&nbsp;</span><span class="variable other basic perl6"><span>$*value</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$&lt;var</span></span><span>&gt;;&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.check_variable(</span><span class="variable other basic perl6"><span>$*value</span></span><span>);&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;colonpair_variable&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sigil&gt;&nbsp;{}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;twigil&gt;?&nbsp;&lt;desigilname&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;</span><span class="variable other basic perl6"><span>$&lt;capvar</span></span><span>&gt;=</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>&lt;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&lt;desigilname&gt;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>&gt;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>proto</span></span><span>&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;special_variable&nbsp;{&nbsp;&lt;...&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;special_variable:sym&lt;$!{&nbsp;}&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$!{</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;.*?&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>}</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;|&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>%!</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.obsvar(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>%!</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;special_variable:sym&lt;$~&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&nbsp;&lt;?</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;\h*&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>=</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.obsvar(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$~</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;special_variable:sym&lt;$`&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&nbsp;&nbsp;&lt;?</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;\</span><span class="keyword operator perl6"><span>s</span></span><span>&nbsp;|&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>,</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;|&nbsp;&lt;terminator&gt;&nbsp;&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.obsvar(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$`</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;special_variable:sym&lt;$@&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&nbsp;&lt;[&nbsp;\</span><span class="keyword operator perl6"><span>s</span></span><span>&nbsp;;&nbsp;,&nbsp;)&nbsp;]&gt;&nbsp;.</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.obsvar(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$@</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;TODO:&nbsp;use&nbsp;actual&nbsp;variable&nbsp;in&nbsp;error&nbsp;message</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;special_variable:sym&lt;$</span><span class="comment line number-sign perl6"><span>#&gt;&nbsp;{</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;\w+&nbsp;&lt;.obs(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$#variable</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>@variable.end</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;&lt;.obsvar(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$#</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;special_variable:sym&lt;$$&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&nbsp;\W</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.obsvar(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$$</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;special_variable:sym&lt;$%&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&nbsp;&lt;?</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;\h*&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>=</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.obsvar(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$%</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;TODO:&nbsp;$^X&nbsp;and&nbsp;other&nbsp;&quot;caret&quot;&nbsp;variables</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;special_variable:sym&lt;$^&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&nbsp;&lt;?</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;\h*&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>=</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.obsvar(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$^</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;special_variable:sym&lt;$&amp;&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&nbsp;&lt;?</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;\</span><span class="keyword operator perl6"><span>s</span></span><span>&nbsp;|&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>,</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;|&nbsp;&lt;terminator&gt;&nbsp;&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.obsvar(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$&amp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;special_variable:sym&lt;$*&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&nbsp;&lt;?</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;\h*&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>=</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.obsvar(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$*</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;special_variable:sym&lt;$=&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&nbsp;&lt;?</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;\h+&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>=</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.obsvar(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$=</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;special_variable:sym&lt;@+&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&nbsp;&lt;?</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;\</span><span class="keyword operator perl6"><span>s</span></span><span>&nbsp;|&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>,</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;|&nbsp;&lt;terminator&gt;&nbsp;&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.obsvar(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>@+</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;special_variable:sym&lt;%+&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&nbsp;&lt;?</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;\</span><span class="keyword operator perl6"><span>s</span></span><span>&nbsp;|&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>,</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;|&nbsp;&lt;terminator&gt;&nbsp;&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.obsvar(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>%+</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;special_variable:sym&lt;$+[&nbsp;]&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$+[</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.obsvar(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>@+</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;special_variable:sym&lt;@+[&nbsp;]&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>@+[</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.obsvar(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>@+</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;special_variable:sym&lt;@+{&nbsp;}&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>@+{</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.obsvar(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>%+</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;special_variable:sym&lt;@-&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&nbsp;&lt;?</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;\</span><span class="keyword operator perl6"><span>s</span></span><span>&nbsp;|&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>,</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;|&nbsp;&lt;terminator&gt;&nbsp;&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.obsvar(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>@-</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;special_variable:sym&lt;%-&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&nbsp;&lt;?</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;\</span><span class="keyword operator perl6"><span>s</span></span><span>&nbsp;|&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>,</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;|&nbsp;&lt;terminator&gt;&nbsp;&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.obsvar(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>%-</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;special_variable:sym&lt;$-[&nbsp;]&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$-[</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.obsvar(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>@-</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;special_variable:sym&lt;@-[&nbsp;]&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>@-[</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.obsvar(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>@-</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;special_variable:sym&lt;%-{&nbsp;}&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>@-{</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.obsvar(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>%-</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;special_variable:sym&lt;$\\&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$</span><span class="constant character escape"><span>\\</span></span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&lt;?</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;\</span><span class="keyword operator perl6"><span>s</span></span><span>&nbsp;|&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>,</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;|&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>=</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;|&nbsp;&lt;terminator&gt;&nbsp;&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.obsvar(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$</span><span class="constant character escape"><span>\\</span></span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;special_variable:sym&lt;$|&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&nbsp;&lt;?</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;\h*&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>=</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.obsvar(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$|</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;special_variable:sym&lt;$:&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&nbsp;&lt;?</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;\h*&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>=</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.obsvar(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$:</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;special_variable:sym&lt;$;&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&nbsp;&lt;?</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;\h*&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>=</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.obsvar(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;special_variable:sym&lt;$</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>&gt;&nbsp;{&nbsp;#</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&nbsp;&lt;?</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;\</span><span class="keyword operator perl6"><span>s</span></span><span>&nbsp;|&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>,</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;|&nbsp;&lt;terminator&gt;&nbsp;&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.obsvar(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;~&nbsp;</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>&#39;</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;special_variable:sym&lt;$</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>&gt;&nbsp;{</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted double perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&nbsp;&lt;?before&nbsp;\h*&nbsp;&#39;=&#39;&gt;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted double perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.obsvar(&#39;$</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>)&gt;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;token&nbsp;special_variable:sym&lt;$,&gt;&nbsp;{</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&nbsp;&lt;?before&nbsp;\h*&nbsp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>=</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>&gt;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.obsvar(</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>$,</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>)&gt;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;token&nbsp;special_variable:sym&lt;$.&gt;&nbsp;{</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&nbsp;{}&nbsp;&lt;!before&nbsp;\w&nbsp;|&nbsp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>&gt;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.obsvar(</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>$.</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>)&gt;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;token&nbsp;special_variable:sym&lt;$?&gt;&nbsp;{</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&nbsp;{}&nbsp;&lt;!before&nbsp;\w&nbsp;|&nbsp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>&gt;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.obsvar(</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>$?</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>)&gt;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;token&nbsp;special_variable:sym&lt;$]&gt;&nbsp;{</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&nbsp;{}&nbsp;&lt;!before&nbsp;\w&nbsp;|&nbsp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>&gt;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.obsvar(</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>$]</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>)&gt;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;regex&nbsp;special_variable:sym&lt;${&nbsp;}&gt;&nbsp;{</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sigil&gt;&nbsp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>{</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>&nbsp;{}&nbsp;$&lt;text&gt;=[.*?]&nbsp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>}</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!{&nbsp;$*QSIGIL&nbsp;}&gt;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;?{</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;my&nbsp;$sigil&nbsp;:=&nbsp;$&lt;sigil&gt;.Str;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;my&nbsp;$text&nbsp;:=&nbsp;$&lt;text&gt;.Str;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;my&nbsp;$bad&nbsp;:=&nbsp;$sigil&nbsp;~&nbsp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>{</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>&nbsp;~&nbsp;$text&nbsp;~&nbsp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>}</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$text&nbsp;:=&nbsp;$text&nbsp;-&nbsp;1&nbsp;if&nbsp;$text&nbsp;~~&nbsp;/^\d+$/&nbsp;&amp;&amp;&nbsp;$text&nbsp;&gt;&nbsp;0;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;!($text&nbsp;~~&nbsp;/^(\w|\:)+$/)&nbsp;{</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.obs($bad,&nbsp;$sigil&nbsp;~&nbsp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>&nbsp;~&nbsp;$text&nbsp;~&nbsp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>);</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif&nbsp;$*QSIGIL&nbsp;{</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.obs($bad,&nbsp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>{</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>&nbsp;~&nbsp;$sigil&nbsp;~&nbsp;$text&nbsp;~&nbsp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>}</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>);</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;{</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.obs($bad,&nbsp;$sigil&nbsp;~&nbsp;$text);</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&gt;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;token&nbsp;desigilname&nbsp;{</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;?before&nbsp;&lt;.sigil&gt;&nbsp;&lt;.sigil&gt;&nbsp;&gt;&nbsp;&lt;variable&gt;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;?sigil&gt;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;&lt;?{&nbsp;$*IN_DECL&nbsp;}&gt;&nbsp;&lt;.typed_panic:&nbsp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span class="keyword operator perl6"><span>X</span></span><span>::Syntax::Variable::IndirectDeclaration</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>&gt;&nbsp;]?</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;variable&gt;&nbsp;{</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$*VAR&nbsp;:=&nbsp;$&lt;variable&gt;;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.check_variable($*VAR);</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;longname&gt;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;token&nbsp;variable&nbsp;{</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:my&nbsp;$*IN_META&nbsp;:=&nbsp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;:dba(</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span class="support function"><span>infix</span></span><span>&nbsp;noun</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>)&nbsp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&amp;[</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>&nbsp;~&nbsp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>]</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>&nbsp;&lt;infixish(</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>[]</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>)&gt;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;sigil&gt;&nbsp;&lt;twigil&gt;?&nbsp;&lt;desigilname&gt;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;special_variable&gt;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;sigil&gt;&nbsp;$&lt;index&gt;=[\d+]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&lt;?{&nbsp;$*IN_DECL&nbsp;}&gt;&nbsp;&lt;.typed_panic:&nbsp;&quot;X::Syntax::Variable::Numeric&quot;&gt;]?</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;sigil&gt;&nbsp;&lt;?[&lt;]&gt;&nbsp;&lt;postcircumfix&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&lt;?{&nbsp;$*IN_DECL&nbsp;}&gt;&nbsp;&lt;.typed_panic(</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span class="keyword operator perl6"><span>X</span></span><span>::Syntax::Variable::Match</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>)&gt;]?</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;:dba(</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>contextualizer</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>)&nbsp;&lt;sigil&gt;&nbsp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>&nbsp;~&nbsp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>&nbsp;&lt;sequence&gt;&nbsp;[&lt;?{&nbsp;$*IN_DECL&nbsp;}&gt;&nbsp;&lt;.panic:&nbsp;&quot;Cannot&nbsp;declare&nbsp;a&nbsp;contextualizer&quot;&gt;]?</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;$&lt;sigil&gt;=[</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>$</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>]&nbsp;$&lt;desigilname&gt;=[&lt;[/_!]&gt;]</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;{}&nbsp;&lt;sigil&gt;&nbsp;&lt;!{&nbsp;$*QSIGIL&nbsp;}&gt;&nbsp;&nbsp;#&nbsp;try&nbsp;last,&nbsp;to&nbsp;allow&nbsp;sublanguages&nbsp;to&nbsp;redefine&nbsp;sigils&nbsp;(like&nbsp;&amp;&nbsp;in&nbsp;regex)</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;&lt;?{&nbsp;$&lt;twigil&gt;&nbsp;&amp;&amp;&nbsp;$&lt;twigil&gt;&nbsp;eq&nbsp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>.</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>&nbsp;}&gt;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;&lt;.unsp&gt;&nbsp;|&nbsp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>\\</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>&nbsp;|&nbsp;&lt;?&gt;&nbsp;]&nbsp;&lt;?[(]&gt;&nbsp;&lt;arglist=.postcircumfix&gt;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]?</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;$*LEFTSIGIL&nbsp;:=&nbsp;nqp::substr(self.orig(),&nbsp;self.from,&nbsp;1)&nbsp;unless&nbsp;$*LEFTSIGIL&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;token&nbsp;sigil&nbsp;{&nbsp;&lt;[$@%&amp;]&gt;&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;proto&nbsp;token&nbsp;twigil&nbsp;{&nbsp;&lt;...&gt;&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;token&nbsp;twigil:sym&lt;.&gt;&nbsp;{&nbsp;&lt;sym&gt;&nbsp;&lt;?before&nbsp;\w&gt;&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;token&nbsp;twigil:sym&lt;!&gt;&nbsp;{&nbsp;&lt;sym&gt;&nbsp;&lt;?before&nbsp;\w&gt;&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;token&nbsp;twigil:sym&lt;^&gt;&nbsp;{&nbsp;&lt;sym&gt;&nbsp;&lt;?before&nbsp;\w&gt;&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;token&nbsp;twigil:sym&lt;:&gt;&nbsp;{&nbsp;&lt;sym&gt;&nbsp;&lt;?before&nbsp;\w&gt;&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;token&nbsp;twigil:sym&lt;*&gt;&nbsp;{&nbsp;&lt;sym&gt;&nbsp;&lt;?before&nbsp;\w&gt;&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;token&nbsp;twigil:sym&lt;?&gt;&nbsp;{&nbsp;&lt;sym&gt;&nbsp;&lt;?before&nbsp;\w&gt;&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;token&nbsp;twigil:sym&lt;=&gt;&nbsp;{&nbsp;&lt;sym&gt;&nbsp;&lt;?before&nbsp;\w&gt;&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;token&nbsp;twigil:sym&lt;~&gt;&nbsp;{&nbsp;&lt;sym&gt;&nbsp;&lt;?before&nbsp;\w&gt;&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;proto&nbsp;token&nbsp;package_declarator&nbsp;{&nbsp;&lt;...&gt;&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;token&nbsp;package_declarator:sym&lt;package&gt;&nbsp;{</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:my&nbsp;$*OUTERPACKAGE&nbsp;:=&nbsp;$*PACKAGE;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:my&nbsp;$*PKGDECL&nbsp;:=&nbsp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span class="keyword other module perl6"><span>package</span></span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:my&nbsp;$*LINE_NO&nbsp;:=&nbsp;HLL::Compiler.lineof(self.orig(),&nbsp;self.from(),&nbsp;:cache(1));</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&nbsp;&lt;.end_keyword&gt;&nbsp;&lt;package_def&gt;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;token&nbsp;package_declarator:sym&lt;module&gt;&nbsp;{</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:my&nbsp;$*OUTERPACKAGE&nbsp;:=&nbsp;$*PACKAGE;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:my&nbsp;$*PKGDECL&nbsp;:=&nbsp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span class="keyword other module perl6"><span>module</span></span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:my&nbsp;$*LINE_NO&nbsp;:=&nbsp;HLL::Compiler.lineof(self.orig(),&nbsp;self.from(),&nbsp;:cache(1));</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&nbsp;&lt;.end_keyword&gt;&nbsp;&lt;package_def&gt;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;token&nbsp;package_declarator:sym&lt;class&gt;&nbsp;{</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:my&nbsp;$*OUTERPACKAGE&nbsp;:=&nbsp;$*PACKAGE;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:my&nbsp;$*PKGDECL&nbsp;:=&nbsp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span class="keyword other module perl6"><span>class</span></span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:my&nbsp;$*LINE_NO&nbsp;:=&nbsp;HLL::Compiler.lineof(self.orig(),&nbsp;self.from(),&nbsp;:cache(1));</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&nbsp;&lt;.end_keyword&gt;&nbsp;&lt;package_def&gt;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;token&nbsp;package_declarator:sym&lt;grammar&gt;&nbsp;{</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:my&nbsp;$*OUTERPACKAGE&nbsp;:=&nbsp;$*PACKAGE;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:my&nbsp;$*PKGDECL&nbsp;:=&nbsp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span class="keyword other module perl6"><span>grammar</span></span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:my&nbsp;$*LINE_NO&nbsp;:=&nbsp;HLL::Compiler.lineof(self.orig(),&nbsp;self.from(),&nbsp;:cache(1));</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&nbsp;&lt;.end_keyword&gt;&nbsp;&lt;package_def&gt;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;token&nbsp;package_declarator:sym&lt;role&gt;&nbsp;{</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:my&nbsp;$*OUTERPACKAGE&nbsp;:=&nbsp;$*PACKAGE;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:my&nbsp;$*PKGDECL&nbsp;:=&nbsp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span class="keyword other module perl6"><span>role</span></span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:my&nbsp;$*LINE_NO&nbsp;:=&nbsp;HLL::Compiler.lineof(self.orig(),&nbsp;self.from(),&nbsp;:cache(1));</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&nbsp;&lt;.end_keyword&gt;&nbsp;&lt;package_def&gt;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;token&nbsp;package_declarator:sym&lt;knowhow&gt;&nbsp;{</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:my&nbsp;$*OUTERPACKAGE&nbsp;:=&nbsp;$*PACKAGE;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:my&nbsp;$*PKGDECL&nbsp;:=&nbsp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>knowhow</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:my&nbsp;$*LINE_NO&nbsp;:=&nbsp;HLL::Compiler.lineof(self.orig(),&nbsp;self.from(),&nbsp;:cache(1));</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&nbsp;&lt;.end_keyword&gt;&nbsp;&lt;package_def&gt;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;token&nbsp;package_declarator:sym&lt;native&gt;&nbsp;{</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:my&nbsp;$*OUTERPACKAGE&nbsp;:=&nbsp;$*PACKAGE;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:my&nbsp;$*PKGDECL&nbsp;:=&nbsp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>native</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:my&nbsp;$*LINE_NO&nbsp;:=&nbsp;HLL::Compiler.lineof(self.orig(),&nbsp;self.from(),&nbsp;:cache(1));</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&nbsp;&lt;.end_keyword&gt;&nbsp;&lt;package_def&gt;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;token&nbsp;package_declarator:sym&lt;slang&gt;&nbsp;{</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:my&nbsp;$*OUTERPACKAGE&nbsp;:=&nbsp;$*PACKAGE;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:my&nbsp;$*PKGDECL&nbsp;:=&nbsp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span class="keyword other module perl6"><span>slang</span></span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:my&nbsp;$*LINE_NO&nbsp;:=&nbsp;HLL::Compiler.lineof(self.orig(),&nbsp;self.from(),&nbsp;:cache(1));</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&nbsp;&lt;.end_keyword&gt;&nbsp;&lt;package_def&gt;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;token&nbsp;package_declarator:sym&lt;trusts&gt;&nbsp;{</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&nbsp;&lt;.ws&gt;&nbsp;&lt;typename&gt;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;rule&nbsp;package_declarator:sym&lt;also&gt;&nbsp;{</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;&lt;trait&gt;+&nbsp;||&nbsp;&lt;.panic:&nbsp;&quot;No&nbsp;valid&nbsp;trait&nbsp;found&nbsp;after&nbsp;also&quot;&gt;&nbsp;]</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;rule&nbsp;package_def&nbsp;{</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:my&nbsp;$longname;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:my&nbsp;$outer&nbsp;:=&nbsp;$*W.cur_lexpad();</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:my&nbsp;$*IMPLICIT&nbsp;:=&nbsp;0;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:my&nbsp;$*DECLARAND;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:my&nbsp;$*IN_DECL&nbsp;:=&nbsp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span class="keyword other module perl6"><span>package</span></span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:my&nbsp;$*HAS_SELF&nbsp;:=&nbsp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:my&nbsp;$*CURPAD;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:my&nbsp;$*DOC&nbsp;:=&nbsp;$*DECLARATOR_DOCS;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:my&nbsp;$*POD_BLOCK;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;$*DECLARATOR_DOCS&nbsp;:=&nbsp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.attach_leading_docs&gt;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;Type-object&nbsp;will&nbsp;live&nbsp;in&nbsp;here;&nbsp;also&nbsp;set&nbsp;default&nbsp;REPR&nbsp;(a&nbsp;trait</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;may&nbsp;override&nbsp;this,&nbsp;e.g.&nbsp;is&nbsp;repr(</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>...</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>)).</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:my&nbsp;$*PACKAGE;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:my&nbsp;%*ATTR_USAGES;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:my&nbsp;$*REPR;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;Default&nbsp;to&nbsp;our&nbsp;scoped.</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;unless&nbsp;$*SCOPE&nbsp;{&nbsp;$*SCOPE&nbsp;:=&nbsp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span class="storage type variable perl6"><span>our</span></span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>;&nbsp;}&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;&lt;longname&gt;&nbsp;{&nbsp;$longname&nbsp;:=&nbsp;$*W.dissect_longname($&lt;longname&gt;);&nbsp;}&nbsp;]?</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.newpad&gt;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;:dba(</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>generic&nbsp;</span><span class="keyword other module perl6"><span>role</span></span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>)</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;?{&nbsp;($*PKGDECL//</span><span class="punctuation definition string end perl6"><span>&#39;</span></span><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>)&nbsp;eq&nbsp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span class="keyword other module perl6"><span>role</span></span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>&nbsp;}&gt;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;$*PACKAGE&nbsp;:=&nbsp;$*OUTERPACKAGE&nbsp;}&nbsp;#&nbsp;in&nbsp;case&nbsp;signature&nbsp;tries&nbsp;to&nbsp;declare&nbsp;a&nbsp;package</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>[</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>&nbsp;~&nbsp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>]</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>&nbsp;&lt;signature&gt;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;$*IN_DECL&nbsp;:=&nbsp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>;&nbsp;}</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]?</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;trait&gt;*</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</span></span></span></div><div class="line"><span class="source perl6"><span class="string quoted single perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;Unless&nbsp;we</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span class="support function"><span>re</span></span><span>&nbsp;augmenting...</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*SCOPE</span></span><span>&nbsp;</span><span class="keyword operator perl6"><span>ne</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>augment</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;Locate&nbsp;any&nbsp;existing&nbsp;symbol.&nbsp;Note&nbsp;that&nbsp;it&#39;s&nbsp;only&nbsp;a&nbsp;match</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;with&nbsp;&quot;my&quot;&nbsp;if&nbsp;we&nbsp;already&nbsp;have&nbsp;a&nbsp;declaration&nbsp;in&nbsp;this&nbsp;scope.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$exists</span></span><span>&nbsp;:=&nbsp;0;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>@name</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$longname</span></span><span>&nbsp;??</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$longname</span></span><span>.type_name_parts(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>package&nbsp;name</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;:decl(1))&nbsp;!!</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[];</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$target_package</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$longname</span></span><span>&nbsp;&amp;&amp;&nbsp;</span><span class="variable other basic perl6"><span>$longname</span></span><span>.is_declared_in_global()</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;??&nbsp;</span><span class="variable other basic perl6"><span>$*GLOBALish</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;!!&nbsp;</span><span class="variable other basic perl6"><span>$*OUTERPACKAGE</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>@name</span></span><span>&nbsp;&amp;&amp;&nbsp;</span><span class="variable other basic perl6"><span>$*SCOPE</span></span><span>&nbsp;</span><span class="keyword operator perl6"><span>ne</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>anon</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>@name</span></span><span>&nbsp;&amp;&amp;&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.already_declared(</span><span class="variable other basic perl6"><span>$*SCOPE</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$target_package</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$outer</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>@name</span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*PACKAGE</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.find_symbol(</span><span class="variable other basic perl6"><span>@name</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$exists</span></span><span>&nbsp;:=&nbsp;1;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;If&nbsp;it&nbsp;exists&nbsp;already,&nbsp;then&nbsp;it&#39;s&nbsp;either&nbsp;uncomposed&nbsp;(in&nbsp;which</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;case&nbsp;we&nbsp;just&nbsp;stubbed&nbsp;it),&nbsp;a&nbsp;role&nbsp;(in&nbsp;which&nbsp;case&nbsp;multiple</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;variants&nbsp;are&nbsp;OK)&nbsp;or&nbsp;else&nbsp;an&nbsp;illegal&nbsp;redecl.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$exists</span></span><span>&nbsp;&amp;&amp;&nbsp;(</span><span class="variable other basic perl6"><span>$*PKGDECL</span></span><span>&nbsp;</span><span class="keyword operator perl6"><span>ne</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>role</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;||&nbsp;!nqp::</span><span class="support function"><span>can</span></span><span>(</span><span class="variable other basic perl6"><span>$*PACKAGE</span></span><span>.</span><span class="support function"><span>HOW</span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>configure_punning</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>))&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*PKGDECL</span></span><span>&nbsp;</span><span class="keyword operator perl6"><span>eq</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>role</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;||&nbsp;</span><span class="variable other basic perl6"><span>$*PACKAGE</span></span><span>.</span><span class="support function"><span>HOW</span></span><span>.is_composed(</span><span class="variable other basic perl6"><span>$*PACKAGE</span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.throw($/,&nbsp;[</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>X</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>Redeclaration</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>],</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;symbol&nbsp;=&gt;&nbsp;</span><span class="variable other basic perl6"><span>$longname</span></span><span>.</span><span class="support function"><span>name</span></span><span>(),</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;If&nbsp;it&#39;s&nbsp;not&nbsp;a&nbsp;role,&nbsp;or&nbsp;it&nbsp;is&nbsp;a&nbsp;role&nbsp;but&nbsp;one&nbsp;with&nbsp;no&nbsp;name,</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;then&nbsp;just&nbsp;needs&nbsp;meta-object&nbsp;construction&nbsp;and&nbsp;installation.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>elsif</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*PKGDECL</span></span><span>&nbsp;</span><span class="keyword operator perl6"><span>ne</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>role</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;||&nbsp;!</span><span class="variable other basic perl6"><span>@name</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;Construct&nbsp;meta-object&nbsp;for&nbsp;this&nbsp;package.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>%args</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>@name</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>%args</span></span><span>&lt;</span><span class="support function"><span>name</span></span><span>&gt;&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$longname</span></span><span>.</span><span class="support function"><span>name</span></span><span>();</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*REPR</span></span><span>&nbsp;</span><span class="keyword operator perl6"><span>ne</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>%args</span></span><span>&lt;repr&gt;&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*REPR</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*PACKAGE</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.pkg_create_mo($/,&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.resolve_mo($/,&nbsp;</span><span class="variable other basic perl6"><span>$*PKGDECL</span></span><span>),&nbsp;|</span><span class="variable other basic perl6"><span>%args</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;Install&nbsp;it&nbsp;in&nbsp;the&nbsp;symbol&nbsp;table&nbsp;if&nbsp;needed.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>@name</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.install_package($/,&nbsp;</span><span class="variable other basic perl6"><span>@name</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$*SCOPE</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$*PKGDECL</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$target_package</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$outer</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$*PACKAGE</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;If&nbsp;it&#39;s&nbsp;a&nbsp;named&nbsp;role,&nbsp;a&nbsp;little&nbsp;trickier.&nbsp;We&nbsp;need&nbsp;to&nbsp;make</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;a&nbsp;parametric&nbsp;role&nbsp;group&nbsp;for&nbsp;it&nbsp;(unless&nbsp;we&nbsp;got&nbsp;one),&nbsp;and</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;then&nbsp;install&nbsp;it&nbsp;in&nbsp;that.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>else</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;If&nbsp;the&nbsp;group&nbsp;doesn&#39;t&nbsp;exist,&nbsp;create&nbsp;it.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$group</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$exists</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$group</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*PACKAGE</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>else</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$group</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.pkg_create_mo($/,&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.resolve_mo($/,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>role-group</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>),&nbsp;:</span><span class="support function"><span>name</span></span><span>(</span><span class="variable other basic perl6"><span>$longname</span></span><span>.</span><span class="support function"><span>name</span></span><span>()),&nbsp;:repr(</span><span class="variable other basic perl6"><span>$*REPR</span></span><span>));</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.install_package($/,&nbsp;</span><span class="variable other basic perl6"><span>@name</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$*SCOPE</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$*PKGDECL</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$target_package</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$outer</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$group</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;Construct&nbsp;role&nbsp;meta-object&nbsp;with&nbsp;group.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>sub</span></span><span>&nbsp;needs_args(</span><span class="variable other basic perl6"><span>$s</span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control flowcontrol perl6"><span>return</span></span><span>&nbsp;0&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;!</span><span class="variable other basic perl6"><span>$s</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>@params</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$s</span></span><span>.ast&lt;parameters&gt;;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control flowcontrol perl6"><span>return</span></span><span>&nbsp;0&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;nqp::</span><span class="support function"><span>elems</span></span><span>(</span><span class="variable other basic perl6"><span>@params</span></span><span>)&nbsp;==&nbsp;0;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control flowcontrol perl6"><span>return</span></span><span>&nbsp;nqp::</span><span class="support function"><span>elems</span></span><span>(</span><span class="variable other basic perl6"><span>@params</span></span><span>)&nbsp;&gt;&nbsp;1&nbsp;||&nbsp;!</span><span class="variable other basic perl6"><span>@params</span></span><span>[0]&lt;optional&gt;;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*PACKAGE</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.pkg_create_mo($/,&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.resolve_mo($/,&nbsp;</span><span class="variable other basic perl6"><span>$*PKGDECL</span></span><span>),&nbsp;:</span><span class="support function"><span>name</span></span><span>(</span><span class="variable other basic perl6"><span>$longname</span></span><span>.</span><span class="support function"><span>name</span></span><span>()),</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:repr(</span><span class="variable other basic perl6"><span>$*REPR</span></span><span>),&nbsp;:group(</span><span class="variable other basic perl6"><span>$group</span></span><span>),&nbsp;:signatured(needs_args(</span><span class="variable other basic perl6"><span>$&lt;signature</span></span><span>&gt;)));</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>else</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;Augment.&nbsp;Ensure&nbsp;we&nbsp;can.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;!</span><span class="variable other basic perl6"><span>$*MONKEY_TYPING</span></span><span>&nbsp;&amp;&amp;&nbsp;</span><span class="variable other basic perl6"><span>$longname</span></span><span>.text&nbsp;</span><span class="keyword operator perl6"><span>ne</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>Cool</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.typed_panic(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>X::Syntax::Augment::WithoutMonkeyTyping</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>elsif</span></span><span>&nbsp;!</span><span class="variable other basic perl6"><span>$longname</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.throw($/,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>X::Anon::Augment</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="keyword other module perl6"><span>package</span></span><span>-kind&nbsp;=&gt;&nbsp;</span><span class="variable other basic perl6"><span>$*PKGDECL</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;Locate&nbsp;type.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>@name</span></span><span>&nbsp;:=&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$longname</span></span><span>.type_name_parts(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>package&nbsp;name</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;:decl(1));</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$found</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control control-handlers perl6"><span>try</span></span><span>&nbsp;{&nbsp;</span><span class="variable other basic perl6"><span>$*PACKAGE</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.find_symbol(</span><span class="variable other basic perl6"><span>@name</span></span><span>);&nbsp;</span><span class="variable other basic perl6"><span>$found</span></span><span>&nbsp;:=&nbsp;1&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>unless</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$found</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.throw($/,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>X::Augment::NoSuchType</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword other module perl6"><span>package</span></span><span>-kind&nbsp;=&gt;&nbsp;</span><span class="variable other basic perl6"><span>$*PKGDECL</span></span><span>,</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword other module perl6"><span>package</span></span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&gt;&nbsp;</span><span class="variable other basic perl6"><span>$longname</span></span><span>.text(),</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>unless</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*PACKAGE</span></span><span>.</span><span class="support function"><span>HOW</span></span><span>.archetypes.augmentable&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.typed_panic(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>X::Syntax::Augment::Illegal</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword other module perl6"><span>package</span></span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&gt;&nbsp;</span><span class="variable other basic perl6"><span>$longname</span></span><span>.text);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;Install&nbsp;$?PACKAGE,&nbsp;$?ROLE,&nbsp;$?CLASS,&nbsp;and&nbsp;::&nbsp;variants&nbsp;as&nbsp;needed.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$curpad</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.cur_lexpad();</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>unless</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$curpad</span></span><span>.symbol(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$?PACKAGE</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.install_lexical_symbol(</span><span class="variable other basic perl6"><span>$curpad</span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$?PACKAGE</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$*PACKAGE</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.install_lexical_symbol(</span><span class="variable other basic perl6"><span>$curpad</span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>::?PACKAGE</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$*PACKAGE</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*PKGDECL</span></span><span>&nbsp;</span><span class="keyword operator perl6"><span>eq</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>role</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.install_lexical_symbol(</span><span class="variable other basic perl6"><span>$curpad</span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$?ROLE</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$*PACKAGE</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.install_lexical_symbol(</span><span class="variable other basic perl6"><span>$curpad</span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>::?ROLE</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$*PACKAGE</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.install_lexical_symbol(</span><span class="variable other basic perl6"><span>$curpad</span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$?CLASS</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.pkg_create_mo($/,&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.resolve_mo($/,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>generic</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>),&nbsp;:</span><span class="support function"><span>name</span></span><span>(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$?CLASS</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)));</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.install_lexical_symbol(</span><span class="variable other basic perl6"><span>$curpad</span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>::?CLASS</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.pkg_create_mo($/,&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.resolve_mo($/,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>generic</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>),&nbsp;:</span><span class="support function"><span>name</span></span><span>(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>::?CLASS</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)));</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>elsif</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*PKGDECL</span></span><span>&nbsp;</span><span class="keyword operator perl6"><span>ne</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>package</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&amp;&amp;&nbsp;</span><span class="variable other basic perl6"><span>$*PKGDECL</span></span><span>&nbsp;</span><span class="keyword operator perl6"><span>ne</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>module</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.install_lexical_symbol(</span><span class="variable other basic perl6"><span>$curpad</span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>$?CLASS</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$*PACKAGE</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.install_lexical_symbol(</span><span class="variable other basic perl6"><span>$curpad</span></span><span>,&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>::?CLASS</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$*PACKAGE</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;Set&nbsp;declarand&nbsp;as&nbsp;the&nbsp;package.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*DECLARAND</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*PACKAGE</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*PRECEDING_DECL_LINE</span></span><span>&nbsp;&lt;&nbsp;</span><span class="variable other basic perl6"><span>$*LINE_NO</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*PRECEDING_DECL_LINE</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*LINE_NO</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*PRECEDING_DECL</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*DECLARAND</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;Apply&nbsp;any&nbsp;traits.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control repeat perl6"><span>for</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$&lt;trait</span></span><span>&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$applier</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$_</span></span><span>.ast;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$applier</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$applier</span></span><span>(</span><span class="variable other basic perl6"><span>$*DECLARAND</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:!</span><span class="keyword operator perl6"><span>s</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;nqp::</span><span class="support function"><span>push</span></span><span>(</span><span class="variable other basic perl6"><span>@*PACKAGES</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$*PACKAGE</span></span><span>);&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;&lt;?[{]&gt;&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*IN_DECL</span></span><span>&nbsp;:=&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*begin_compunit</span></span><span>&nbsp;:=&nbsp;0;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;blockoid&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;&lt;?{&nbsp;</span><span class="variable other basic perl6"><span>$*begin_compunit</span></span><span>&nbsp;}&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>unless</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$longname</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.panic(</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>Compilation&nbsp;unit&nbsp;cannot&nbsp;be&nbsp;anonymous</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>unless</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$outer</span></span><span>&nbsp;=:=&nbsp;</span><span class="variable other basic perl6"><span>$*UNIT</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.typed_panic(</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>X::SemicolonForm::Invalid</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>,&nbsp;what&nbsp;=&gt;&nbsp;</span><span class="variable other basic perl6"><span>$*PKGDECL</span></span><span>,&nbsp;</span><span class="storage modifier type constraints perl6"><span>where</span></span><span>&nbsp;=&gt;&nbsp;</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>in&nbsp;subscopes</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*PKGDECL</span></span><span>&nbsp;</span><span class="keyword operator perl6"><span>eq</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>package</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.panic(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>This&nbsp;appears&nbsp;to&nbsp;be&nbsp;Perl&nbsp;5&nbsp;code.&nbsp;If&nbsp;you&nbsp;intended&nbsp;it&nbsp;to&nbsp;be&nbsp;Perl&nbsp;6&nbsp;code,&nbsp;please&nbsp;use&nbsp;a&nbsp;Perl&nbsp;6&nbsp;style&nbsp;package&nbsp;block&nbsp;like&nbsp;&quot;package&nbsp;Foo&nbsp;{&nbsp;...&nbsp;}&quot;,&nbsp;or&nbsp;&quot;module&nbsp;Foo;&nbsp;...&quot;.</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*begin_compunit</span></span><span>&nbsp;:=&nbsp;0;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;</span><span class="variable other basic perl6"><span>$*IN_DECL</span></span><span>&nbsp;:=&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.finishpad&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;statementlist(1)&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;whole&nbsp;rest&nbsp;of&nbsp;file,&nbsp;presumably</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;</span><span class="variable other basic perl6"><span>$*CURPAD</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.pop_lexpad()&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;{&nbsp;$/.CURSOR.typed_panic(</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>X::SemicolonForm::TooLate</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>,&nbsp;what&nbsp;=&gt;&nbsp;</span><span class="variable other basic perl6"><span>$*PKGDECL</span></span><span>);&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;&lt;.panic(</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>Unable&nbsp;to&nbsp;parse&nbsp;$*PKGDECL&nbsp;definition</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;nqp::</span><span class="support function"><span>pop</span></span><span>(</span><span class="variable other basic perl6"><span>@*PACKAGES</span></span><span>);&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]:!</span><span class="keyword operator perl6"><span>s</span></span><span>&nbsp;||&nbsp;{&nbsp;$/.CURSOR.malformed(</span><span class="variable other basic perl6"><span>$*PKGDECL</span></span><span>)&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;declarator&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;STD.pm6&nbsp;uses&nbsp;&lt;defterm&gt;&nbsp;here,&nbsp;but&nbsp;we&nbsp;need&nbsp;different&nbsp;</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;action&nbsp;methods</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span class="constant character escape"><span>\\</span></span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&lt;defterm&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;&lt;.ws&gt;&nbsp;&lt;term_init=initializer&gt;&nbsp;||&nbsp;&lt;.typed_panic:&nbsp;</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>X::Syntax::Term::MissingInitializer</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>&gt;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;variable_declarator&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;&lt;?{&nbsp;</span><span class="variable other basic perl6"><span>$*SCOPE</span></span><span>&nbsp;</span><span class="keyword operator perl6"><span>eq</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>has</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;}&gt;&nbsp;&lt;.newpad&gt;&nbsp;[&nbsp;&lt;.ws&gt;&nbsp;&lt;initializer&gt;&nbsp;]?&nbsp;{&nbsp;</span><span class="variable other basic perl6"><span>$*ATTR_INIT_BLOCK</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.pop_lexpad()&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;[&nbsp;&lt;.ws&gt;&nbsp;&lt;initializer&gt;&nbsp;]?</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>(</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;~&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>)</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&lt;</span><span class="support function"><span>signature</span></span><span>&gt;&nbsp;[&nbsp;&lt;.ws&gt;&nbsp;&lt;trait&gt;+&nbsp;]?&nbsp;[&nbsp;&lt;.ws&gt;&nbsp;&lt;initializer&gt;&nbsp;]?</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;routine_declarator&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;regex_declarator&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;type_declarator&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>rule</span></span><span>&nbsp;term:sym&lt;winner&gt;&nbsp;&nbsp;&nbsp;{&nbsp;&lt;sym&gt;&lt;.end_keyword&gt;&nbsp;&lt;xblock&gt;&nbsp;}&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;DEPRECATED</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>rule</span></span><span>&nbsp;term:sym&lt;earliest&gt;&nbsp;{&nbsp;&lt;sym&gt;&lt;.end_keyword&gt;&nbsp;&lt;xblock&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>rule</span></span><span>&nbsp;term:sym&lt;combine&gt;{&nbsp;&lt;sym&gt;&lt;.end_keyword&gt;&nbsp;&lt;xblock&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>rule</span></span><span>&nbsp;statement_control:sym&lt;more&gt;&nbsp;&nbsp;&nbsp;{&nbsp;&lt;sym&gt;&lt;.end_keyword&gt;&nbsp;&lt;xblock(1)&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>rule</span></span><span>&nbsp;statement_control:sym&lt;</span><span class="support function"><span>done</span></span><span>&gt;&nbsp;&nbsp;&nbsp;{&nbsp;&lt;sym&gt;&lt;.end_keyword&gt;&nbsp;&lt;xblock(1)&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>rule</span></span><span>&nbsp;statement_control:sym&lt;quit&gt;&nbsp;&nbsp;&nbsp;{&nbsp;&lt;sym&gt;&lt;.end_keyword&gt;&nbsp;&lt;xblock(1)&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>rule</span></span><span>&nbsp;statement_control:sym&lt;</span><span class="support function"><span>wait</span></span><span>&gt;&nbsp;&nbsp;&nbsp;{&nbsp;&lt;sym&gt;&lt;.end_keyword&gt;&nbsp;&lt;xblock(1)&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>proto</span></span><span>&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;multi_declarator&nbsp;{&nbsp;&lt;...&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;multi_declarator:sym&lt;</span><span class="storage type declare routine perl6"><span>multi</span></span><span>&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*LINE_NO</span></span><span>&nbsp;:=&nbsp;HLL::Compiler.lineof(</span><span class="variable language perl6"><span>self</span></span><span>.orig(),&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.</span><span class="support function"><span>from</span></span><span>(),&nbsp;:cache(1));</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*MULTINESS</span></span><span>&nbsp;:=&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>multi</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>;&nbsp;&lt;.end_keyword&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.ws&gt;&nbsp;[&nbsp;&lt;declarator&gt;&nbsp;||&nbsp;&lt;routine_def(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>sub</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;&nbsp;||&nbsp;&lt;.malformed(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>multi</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;multi_declarator:sym&lt;</span><span class="storage type declare routine perl6"><span>proto</span></span><span>&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*LINE_NO</span></span><span>&nbsp;:=&nbsp;HLL::Compiler.lineof(</span><span class="variable language perl6"><span>self</span></span><span>.orig(),&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.</span><span class="support function"><span>from</span></span><span>(),&nbsp;:cache(1));</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*MULTINESS</span></span><span>&nbsp;:=&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>proto</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*IN_PROTO</span></span><span>&nbsp;:=&nbsp;1;&nbsp;&lt;.end_keyword&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.ws&gt;&nbsp;[&nbsp;&lt;declarator&gt;&nbsp;||&nbsp;&lt;routine_def(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>sub</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;&nbsp;||&nbsp;&lt;.malformed(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>proto</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;multi_declarator:sym&lt;</span><span class="storage type declare routine perl6"><span>only</span></span><span>&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*LINE_NO</span></span><span>&nbsp;:=&nbsp;HLL::Compiler.lineof(</span><span class="variable language perl6"><span>self</span></span><span>.orig(),&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.</span><span class="support function"><span>from</span></span><span>(),&nbsp;:cache(1));</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*MULTINESS</span></span><span>&nbsp;:=&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>only</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>;&nbsp;&lt;.end_keyword&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.ws&gt;&nbsp;[&nbsp;&lt;declarator&gt;&nbsp;||&nbsp;&lt;routine_def(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>sub</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;&nbsp;||&nbsp;&lt;.malformed(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>only</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;multi_declarator:sym&lt;null&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*MULTINESS</span></span><span>&nbsp;:=&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;declarator&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>proto</span></span><span>&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;scope_declarator&nbsp;{&nbsp;&lt;...&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;scope_declarator:sym&lt;</span><span class="storage type variable perl6"><span>my</span></span><span>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&lt;sym&gt;&nbsp;&lt;scoped(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>my</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;scope_declarator:sym&lt;</span><span class="storage type variable perl6"><span>our</span></span><span>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&lt;sym&gt;&nbsp;&lt;scoped(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>our</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;scope_declarator:sym&lt;</span><span class="storage type variable perl6"><span>has</span></span><span>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*LINE_NO</span></span><span>&nbsp;:=&nbsp;HLL::Compiler.lineof(</span><span class="variable language perl6"><span>self</span></span><span>.orig(),&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.</span><span class="support function"><span>from</span></span><span>(),&nbsp;:cache(1));</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*HAS_SELF</span></span><span>&nbsp;:=&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>partial</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*ATTR_INIT_BLOCK</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;scoped(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>has</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;scope_declarator:sym&lt;</span><span class="storage modifier type constraints perl6"><span>augment</span></span><span>&gt;&nbsp;&nbsp;&nbsp;{&nbsp;&lt;sym&gt;&nbsp;&lt;scoped(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>augment</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;scope_declarator:sym&lt;anon&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&lt;sym&gt;&nbsp;&lt;scoped(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>anon</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;scope_declarator:sym&lt;</span><span class="storage type variable perl6"><span>state</span></span><span>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&lt;sym&gt;&nbsp;&lt;scoped(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>state</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;scope_declarator:sym&lt;</span><span class="storage modifier type constraints perl6"><span>supersede</span></span><span>&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&nbsp;&lt;scoped(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>supersede</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;&nbsp;&lt;.NYI(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>&quot;supersede&quot;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;scoped(</span><span class="variable other basic perl6"><span>$*SCOPE</span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.end_keyword&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:dba(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>scoped&nbsp;declarator</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*DOC</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*DECLARATOR_DOCS</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*POD_BLOCK</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*SCOPE</span></span><span>&nbsp;</span><span class="keyword operator perl6"><span>eq</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>has</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*DECLARATOR_DOCS</span></span><span>&nbsp;:=&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*PRECEDING_DECL_LINE</span></span><span>&nbsp;&lt;&nbsp;</span><span class="variable other basic perl6"><span>$*LINE_NO</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*PRECEDING_DECL_LINE</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*LINE_NO</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*PRECEDING_DECL</span></span><span>&nbsp;:=&nbsp;Mu;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;actual&nbsp;declarand&nbsp;comes&nbsp;later,&nbsp;in&nbsp;Actions::declare_variable</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.attach_leading_docs;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.ws&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;DECL=declarator&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;DECL=regex_declarator&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;DECL=package_declarator&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;[&lt;typename&gt;&lt;.ws&gt;]+</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;+</span><span class="variable other basic perl6"><span>$&lt;typename</span></span><span>&gt;&nbsp;&gt;&nbsp;1&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.NYI(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>Multiple&nbsp;prefix&nbsp;constraints</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*OFTYPE</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$&lt;typename</span></span><span>&gt;[0];</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;DECL=multi_declarator&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;DECL=multi_declarator&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;&lt;.ws&gt;[&lt;typename&gt;&lt;.ws&gt;]*&nbsp;&lt;ident&gt;&nbsp;&lt;?</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;&lt;.ws&gt;&nbsp;[</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>:</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>?</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>:</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>?</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>=</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;|&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;|&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>}</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;]&gt;&nbsp;{}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.malformed(</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>$*SCOPE&nbsp;(did&nbsp;you&nbsp;mean&nbsp;to&nbsp;declare&nbsp;a&nbsp;sigilless&nbsp;</span><span class="constant character escape perl6"><span>\\</span></span><span>{~$&lt;ident&gt;}&nbsp;or&nbsp;\${~$&lt;ident&gt;}?)</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;&lt;.ws&gt;&lt;typo_typename&gt;&nbsp;&lt;!&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;&lt;.malformed(</span><span class="variable other basic perl6"><span>$*SCOPE</span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;variable_declarator&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*IN_DECL</span></span><span>&nbsp;:=&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>variable</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$var</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;variable&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$var</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$&lt;variable</span></span><span>&gt;.</span><span class="support type perl6"><span>Str</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.add_variable(</span><span class="variable other basic perl6"><span>$var</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*IN_DECL</span></span><span>&nbsp;:=&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.unsp&gt;?</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$&lt;shape</span></span><span>&gt;=[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>(</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;~&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>)</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&lt;</span><span class="support function"><span>signature</span></span><span>&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$sigil</span></span><span>&nbsp;:=&nbsp;nqp::</span><span class="support function"><span>substr</span></span><span>(</span><span class="variable other basic perl6"><span>$var</span></span><span>,&nbsp;0,&nbsp;1);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$sigil</span></span><span>&nbsp;</span><span class="keyword operator perl6"><span>eq</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>&amp;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.typed_sorry(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>X::Syntax::Reserved</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reserved&nbsp;=&gt;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>()&nbsp;shape&nbsp;syntax&nbsp;in&nbsp;routine&nbsp;declarations</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;instead&nbsp;=&gt;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>&nbsp;(maybe&nbsp;use&nbsp;:()&nbsp;to&nbsp;declare&nbsp;a&nbsp;longname?)</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>elsif</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$sigil</span></span><span>&nbsp;</span><span class="keyword operator perl6"><span>eq</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>@</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.typed_sorry(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>X::Syntax::Reserved</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reserved&nbsp;=&gt;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>()&nbsp;shape&nbsp;syntax&nbsp;in&nbsp;array&nbsp;declarations</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>elsif</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$sigil</span></span><span>&nbsp;</span><span class="keyword operator perl6"><span>eq</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>%</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.typed_sorry(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>X::Syntax::Reserved</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reserved&nbsp;=&gt;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>()&nbsp;shape&nbsp;syntax&nbsp;in&nbsp;hash&nbsp;declarations</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>else</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.typed_sorry(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>X::Syntax::Reserved</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>,</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reserved&nbsp;=&gt;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>()&nbsp;shape&nbsp;syntax&nbsp;in&nbsp;variable&nbsp;declarations</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;:dba(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>shape&nbsp;definition</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>[</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;~&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>]</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&lt;semilist&gt;&nbsp;&lt;.NYI:&nbsp;</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>Shaped&nbsp;variable&nbsp;declarations</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;:dba(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>shape&nbsp;definition</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>{</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;~&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>}</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&lt;semilist&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;?[&lt;]&gt;&nbsp;&lt;</span><span class="support function"><span>postcircumfix</span></span><span>&gt;&nbsp;&lt;.NYI:&nbsp;</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>Shaped&nbsp;variable&nbsp;declarations</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]+</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]?</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;&lt;.ws&gt;&nbsp;&lt;trait&gt;+&nbsp;]?</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;&lt;.ws&gt;&nbsp;&lt;post_constraint&gt;+&nbsp;&lt;.NYI:&nbsp;</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>Post-constraints&nbsp;on&nbsp;variables</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>&gt;&nbsp;]?</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>proto</span></span><span>&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;routine_declarator&nbsp;{&nbsp;&lt;...&gt;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;routine_declarator:sym&lt;</span><span class="storage type declare routine perl6"><span>sub</span></span><span>&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*LINE_NO</span></span><span>&nbsp;:=&nbsp;HLL::Compiler.lineof(</span><span class="variable language perl6"><span>self</span></span><span>.orig(),&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.</span><span class="support function"><span>from</span></span><span>(),&nbsp;:cache(1));</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&nbsp;&lt;.end_keyword&gt;&nbsp;&lt;routine_def(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>sub</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;routine_declarator:sym&lt;</span><span class="storage type declare routine perl6"><span>method</span></span><span>&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*LINE_NO</span></span><span>&nbsp;:=&nbsp;HLL::Compiler.lineof(</span><span class="variable language perl6"><span>self</span></span><span>.orig(),&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.</span><span class="support function"><span>from</span></span><span>(),&nbsp;:cache(1));</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&nbsp;&lt;.end_keyword&gt;&nbsp;&lt;method_def(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>method</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;routine_declarator:sym&lt;</span><span class="storage type declare routine perl6"><span>submethod</span></span><span>&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*LINE_NO</span></span><span>&nbsp;:=&nbsp;HLL::Compiler.lineof(</span><span class="variable language perl6"><span>self</span></span><span>.orig(),&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.</span><span class="support function"><span>from</span></span><span>(),&nbsp;:cache(1));</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&nbsp;&lt;.end_keyword&gt;&nbsp;&lt;method_def(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>submethod</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;routine_declarator:sym&lt;</span><span class="storage type declare routine perl6"><span>macro</span></span><span>&gt;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*LINE_NO</span></span><span>&nbsp;:=&nbsp;HLL::Compiler.lineof(</span><span class="variable language perl6"><span>self</span></span><span>.orig(),&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.</span><span class="support function"><span>from</span></span><span>(),&nbsp;:cache(1));</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sym&gt;&nbsp;&lt;.end_keyword&gt;&nbsp;&lt;macro_def()&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>rule</span></span><span>&nbsp;routine_def(</span><span class="variable other basic perl6"><span>$d</span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*IN_DECL</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$d</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*METHODTYPE</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*IMPLICIT</span></span><span>&nbsp;:=&nbsp;0;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*DOC</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*DECLARATOR_DOCS</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;</span><span class="variable other basic perl6"><span>$*DECLARATOR_DOCS</span></span><span>&nbsp;:=&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*POD_BLOCK</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*DECLARAND</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.stub_code_object(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>Sub</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*CURPAD</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$outer</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.cur_lexpad();</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*PRECEDING_DECL_LINE</span></span><span>&nbsp;&lt;&nbsp;</span><span class="variable other basic perl6"><span>$*LINE_NO</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*PRECEDING_DECL_LINE</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*LINE_NO</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*PRECEDING_DECL</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*DECLARAND</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.attach_leading_docs&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;deflongname&gt;?</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$&lt;deflongname</span></span><span>&gt;&nbsp;&amp;&amp;&nbsp;</span><span class="variable other basic perl6"><span>$&lt;deflongname</span></span><span>&gt;&lt;colonpair&gt;[0]&lt;coloncircumfix&gt;&nbsp;-&gt;&nbsp;</span><span class="variable other basic perl6"><span>$cf</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;It&#39;s&nbsp;an&nbsp;(potentially&nbsp;new)&nbsp;operator,&nbsp;circumfix,&nbsp;etc.&nbsp;that&nbsp;we</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;need&nbsp;to&nbsp;tweak&nbsp;into&nbsp;the&nbsp;grammar.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$category</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$&lt;deflongname</span></span><span>&gt;&lt;</span><span class="support function"><span>name</span></span><span>&gt;.</span><span class="support type perl6"><span>Str</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$opname</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$cf</span></span><span>&lt;</span><span class="support function"><span>circumfix</span></span><span>&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;??&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.colonpair_nibble_to_str($/,&nbsp;</span><span class="variable other basic perl6"><span>$cf</span></span><span>&lt;</span><span class="support function"><span>circumfix</span></span><span>&gt;&lt;nibble&gt;)</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;!!&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$canname</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$category</span></span><span>&nbsp;~&nbsp;</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>:sym&lt;</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>&nbsp;~&nbsp;</span><span class="variable other basic perl6"><span>$opname</span></span><span>&nbsp;~&nbsp;</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>&gt;</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.add_categorical(</span><span class="variable other basic perl6"><span>$category</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$opname</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$canname</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$&lt;deflongname</span></span><span>&gt;.ast,&nbsp;</span><span class="variable other basic perl6"><span>$*DECLARAND</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.newpad&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>(</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&lt;multisig&gt;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>)</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;]?</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;trait&gt;*&nbsp;:!</span><span class="keyword operator perl6"><span>s</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;</span><span class="variable other basic perl6"><span>$*IN_DECL</span></span><span>&nbsp;:=&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$&lt;deflongname</span></span><span>&gt;&nbsp;</span><span class="keyword operator perl6"><span>ne</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>MAIN</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.typed_panic(</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>X::SemicolonForm::Invalid</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>,&nbsp;what&nbsp;=&gt;&nbsp;</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>sub</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>,&nbsp;</span><span class="storage modifier type constraints perl6"><span>where</span></span><span>&nbsp;=&gt;&nbsp;</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>except&nbsp;on&nbsp;MAIN&nbsp;subs</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>unless</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*begin_compunit</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.typed_panic(</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>X::SemicolonForm::TooLate</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>,&nbsp;what&nbsp;=&gt;&nbsp;</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>sub</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>unless</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*MULTINESS</span></span><span>&nbsp;</span><span class="keyword operator perl6"><span>eq</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;||&nbsp;</span><span class="variable other basic perl6"><span>$*MULTINESS</span></span><span>&nbsp;</span><span class="keyword operator perl6"><span>eq</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>only</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.typed_panic(</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>X::SemicolonForm::Invalid</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>,&nbsp;what&nbsp;=&gt;&nbsp;</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>sub</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>,&nbsp;</span><span class="storage modifier type constraints perl6"><span>where</span></span><span>&nbsp;=&gt;&nbsp;</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>on&nbsp;$*MULTINESS&nbsp;subs</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>unless</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$outer</span></span><span>&nbsp;=:=&nbsp;</span><span class="variable other basic perl6"><span>$*UNIT</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.typed_panic(</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>X::SemicolonForm::Invalid</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>,&nbsp;what&nbsp;=&gt;&nbsp;</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>sub</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>,&nbsp;</span><span class="storage modifier type constraints perl6"><span>where</span></span><span>&nbsp;=&gt;&nbsp;</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>in&nbsp;subscopes</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*begin_compunit</span></span><span>&nbsp;:=&nbsp;0;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.finishpad&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;statementlist(1)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;</span><span class="variable other basic perl6"><span>$*CURPAD</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.pop_lexpad()&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;&lt;onlystar&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;&lt;!</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>{</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&gt;&nbsp;&lt;possibly_subname=.deflongname&gt;&nbsp;{&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable language perl6"><span>self</span></span><span>.parse(</span><span class="variable other basic perl6"><span>$&lt;deflongname</span></span><span>&gt;.</span><span class="support type perl6"><span>Str</span></span><span>,&nbsp;:</span><span class="storage type declare routine perl6"><span>rule</span></span><span>(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>typename</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>))&nbsp;{&nbsp;$/.CURSOR.panic(</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>Did&nbsp;you&nbsp;mean&nbsp;to&nbsp;write&nbsp;</span><span class="constant character escape perl6"><span>\&quot;</span></span><span>my&nbsp;$&lt;deflongname&gt;&nbsp;sub&nbsp;$&lt;possibly_subname&gt;</span><span class="constant character escape perl6"><span>\&quot;</span></span><span>&nbsp;or&nbsp;put&nbsp;</span><span class="constant character escape perl6"><span>\&quot;</span></span><span>returns&nbsp;$&lt;deflongname&gt;</span><span class="constant character escape perl6"><span>\&quot;</span></span><span>&nbsp;before&nbsp;the&nbsp;block?</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>);&nbsp;}&nbsp;}&nbsp;&lt;!&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;&lt;blockoid&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>rule</span></span><span>&nbsp;method_def(</span><span class="variable other basic perl6"><span>$d</span></span><span>)&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*IN_DECL</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$d</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*METHODTYPE</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$d</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*HAS_SELF</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$d</span></span><span>&nbsp;</span><span class="keyword operator perl6"><span>eq</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>submethod</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;??&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>partial</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;!!&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>complete</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*DOC</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*DECLARATOR_DOCS</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;</span><span class="variable other basic perl6"><span>$*DECLARATOR_DOCS</span></span><span>&nbsp;:=&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*POD_BLOCK</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*DECLARAND</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.stub_code_object(</span><span class="variable other basic perl6"><span>$d</span></span><span>&nbsp;</span><span class="keyword operator perl6"><span>eq</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>submethod</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;??&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>Submethod</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;!!&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>Method</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*PRECEDING_DECL_LINE</span></span><span>&nbsp;&lt;&nbsp;</span><span class="variable other basic perl6"><span>$*LINE_NO</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*PRECEDING_DECL_LINE</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*LINE_NO</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*PRECEDING_DECL</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*DECLARAND</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.attach_leading_docs&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.newpad&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;</span><span class="variable other basic perl6"><span>$&lt;specials</span></span><span>&gt;=[&lt;[&nbsp;!&nbsp;^&nbsp;]&gt;?]&lt;longname&gt;&nbsp;[&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>(</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&lt;multisig&gt;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>)</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;]?&nbsp;&lt;trait&gt;*</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>(</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&lt;multisig&gt;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>)</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&lt;trait&gt;*</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;sigil&gt;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>.</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>:!</span><span class="keyword operator perl6"><span>s</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:dba(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>subscript&nbsp;signature</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>(</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;~&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>)</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&lt;multisig&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>[</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;~&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>]</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&lt;multisig&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>{</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;~&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>}</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&lt;multisig&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]:</span><span class="keyword operator perl6"><span>s</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;trait&gt;*</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;?&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;</span><span class="variable other basic perl6"><span>$*IN_DECL</span></span><span>&nbsp;:=&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;&lt;onlystar&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;&lt;blockoid&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]&nbsp;||&nbsp;&lt;.malformed(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>method</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>rule</span></span><span>&nbsp;macro_def()&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*IN_DECL</span></span><span>&nbsp;:=&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>macro</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*IMPLICIT</span></span><span>&nbsp;:=&nbsp;0;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*DOC</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*DECLARATOR_DOCS</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;</span><span class="variable other basic perl6"><span>$*DECLARATOR_DOCS</span></span><span>&nbsp;:=&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*POD_BLOCK</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*DECLARAND</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.stub_code_object(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>Macro</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*PRECEDING_DECL_LINE</span></span><span>&nbsp;&lt;&nbsp;</span><span class="variable other basic perl6"><span>$*LINE_NO</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*PRECEDING_DECL_LINE</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*LINE_NO</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="variable other basic perl6"><span>$*PRECEDING_DECL</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*DECLARAND</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.attach_leading_docs&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;deflongname&gt;?</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword control conditional perl6"><span>if</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$&lt;deflongname</span></span><span>&gt;&nbsp;&amp;&amp;&nbsp;</span><span class="variable other basic perl6"><span>$&lt;deflongname</span></span><span>&gt;&lt;colonpair&gt;[0]&lt;coloncircumfix&gt;&nbsp;-&gt;&nbsp;</span><span class="variable other basic perl6"><span>$cf</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;It&#39;s&nbsp;an&nbsp;(potentially&nbsp;new)&nbsp;operator,&nbsp;circumfix,&nbsp;etc.&nbsp;that&nbsp;we</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;need&nbsp;to&nbsp;tweak&nbsp;into&nbsp;the&nbsp;grammar.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$category</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$&lt;deflongname</span></span><span>&gt;&lt;</span><span class="support function"><span>name</span></span><span>&gt;.</span><span class="support type perl6"><span>Str</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$opname</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$cf</span></span><span>&lt;</span><span class="support function"><span>circumfix</span></span><span>&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;??&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.colonpair_nibble_to_str($/,&nbsp;</span><span class="variable other basic perl6"><span>$cf</span></span><span>&lt;</span><span class="support function"><span>circumfix</span></span><span>&gt;&lt;nibble&gt;)</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;!!&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$canname</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$category</span></span><span>&nbsp;~&nbsp;</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>:sym&lt;</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>&nbsp;~&nbsp;</span><span class="variable other basic perl6"><span>$opname</span></span><span>&nbsp;~&nbsp;</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>&gt;</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$/.CURSOR.add_categorical(</span><span class="variable other basic perl6"><span>$category</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$opname</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$canname</span></span><span>,&nbsp;</span><span class="variable other basic perl6"><span>$&lt;deflongname</span></span><span>&gt;.ast,&nbsp;</span><span class="variable other basic perl6"><span>$*DECLARAND</span></span><span>);</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.newpad&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>(</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&lt;multisig&gt;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>)</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;]?</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;trait&gt;*</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;</span><span class="variable other basic perl6"><span>$*IN_DECL</span></span><span>&nbsp;:=&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;&lt;onlystar&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;&lt;blockoid&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;onlystar&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*CURPAD</span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;?{&nbsp;</span><span class="variable other basic perl6"><span>$*MULTINESS</span></span><span>&nbsp;</span><span class="keyword operator perl6"><span>eq</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>proto</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;}&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>{</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&lt;.ws&gt;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>*</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&lt;.ws&gt;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>}</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;?ENDSTMT&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.finishpad&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;</span><span class="variable other basic perl6"><span>$*CURPAD</span></span><span>&nbsp;:=&nbsp;</span><span class="variable other basic perl6"><span>$*W</span></span><span>.pop_lexpad()&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>###########################</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;Captures&nbsp;and&nbsp;Signatures&nbsp;#</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>###########################</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;capterm&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span class="constant character escape"><span>\\</span></span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>(</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&lt;.ws&gt;&nbsp;&lt;capture&gt;?&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>)</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;?</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;\S&gt;&nbsp;&lt;termish&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;{}&nbsp;&lt;.panic:&nbsp;</span><span class="string quoted double perl6"><span class="punctuation definition string begin perl6"><span>&quot;</span></span><span>You&nbsp;can&#39;t&nbsp;backslash&nbsp;that</span><span class="punctuation definition string end perl6"><span>&quot;</span></span></span><span>&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>rule</span></span><span>&nbsp;capture&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;EXPR&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>rule</span></span><span>&nbsp;param_sep&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$&lt;sep</span></span><span>&gt;=[</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>,</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>|</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>:</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>|</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>;;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>|</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>]&nbsp;{&nbsp;</span><span class="variable other basic perl6"><span>@*seps</span></span><span>.</span><span class="support function"><span>push</span></span><span>(</span><span class="variable other basic perl6"><span>$&lt;sep</span></span><span>&gt;)&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment line number-sign perl6"><span>#&nbsp;XXX&nbsp;Not&nbsp;really&nbsp;implemented&nbsp;yet.</span></span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;multisig&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*SCOPE</span></span><span>&nbsp;:=&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>my</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span class="support function"><span>signature</span></span><span>&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;sigterm&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:dba(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>signature</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>:(</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;~&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>)</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&lt;fakesignature&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;fakesignature&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.newpad&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span class="support function"><span>signature</span></span><span>&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="storage type declare routine perl6"><span>token</span></span><span>&nbsp;</span><span class="support function"><span>signature</span></span><span>&nbsp;{</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*IN_DECL</span></span><span>&nbsp;:=&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>sig</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*zone</span></span><span>&nbsp;:=&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>posreq</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>@*seps</span></span><span>&nbsp;:=&nbsp;nqp::list();</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</span><span class="storage type variable perl6"><span>my</span></span><span>&nbsp;</span><span class="variable other basic perl6"><span>$*INVOCANT_OK</span></span><span>&nbsp;:=&nbsp;1;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.ws&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&lt;?</span><span class="keyword operator perl6"><span>before</span></span><span>&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>--&gt;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;|&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>)</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;|&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>]</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;|&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>{</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;|&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>:</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>\</span><span class="keyword operator perl6"><span>s</span></span><span>&nbsp;|&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>;;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;[&nbsp;&lt;parameter&gt;&nbsp;||&nbsp;&lt;.malformed(</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>parameter</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>)&gt;&nbsp;]</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]+&nbsp;%&nbsp;&lt;param_sep&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;.ws&gt;</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;</span><span class="variable other basic perl6"><span>$*IN_DECL</span></span><span>&nbsp;:=&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>--&gt;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&lt;.ws&gt;&nbsp;&lt;typename&gt;&nbsp;||&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>--&gt;</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>&nbsp;&lt;.ws&gt;&nbsp;&lt;typo_typename&gt;&nbsp;]?</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;</span><span class="variable other basic perl6"><span>$*LEFTSIGIL</span></span><span>&nbsp;:=&nbsp;</span><span class="string quoted single perl6"><span class="punctuation definition string begin perl6"><span>&#39;</span></span><span>@</span><span class="punctuation definition string end perl6"><span>&#39;</span></span></span><span>;&nbsp;}</span></span></div><div class="line"><span class="source perl6"><span>&nbsp;&nbsp;&
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment