Что значит диакритический знак [~] внутри грамматики [Граммар] де Перл 6?

Я нашел диакритический знак в этой грамматике (Grammar) модуля Config:: INI Perl 6:

token header { ^^ \h* '[' ~ ']' $=<-[ \] \n ]>+ \h* <.eol>+ }

У меня нет никакого диакритического знака в тексте, с которым этот главный файл встречается. Я знаю, что '[' ~ ']' это важно, потому что, если я прекращаюсь любой (или два или все) этих трех символов, главный файл прекращает встречаться с текстом.

Я изменил такое выражение и функционируй:

token header   { ^^ \h* '[' $=<-[ \] \n ]>+ ']' \h* <.eol>+ }

Он мне кажется, что '[' ~ ']' значь, что то, что он продолжает, будет внутри пары [ и ].

Я знаю, что в нормальном синтаксисе Perl 6, используется диакритический знак ~ для связывания, но этот пример - внутри грамматики ('Grammar'). (В Perl 6, возможно использовать грамматику, чтобы доставать структурированные данные о тексте). Я искал документацию грамматик и регулярных выражений для одной ~, но я не нашел ни одной ни внутри грамматики ни внутри регулярного выражения также.


"cross-posted" в Стакк Оверфлов

9
задан 23.05.2017, 15:39
1 ответ

Взятый (и переведенный) документации Apocalypse 5 (синтаксис для regexes) в секции "Нев Метачарактерс":

Оператор ~ - помощь, чтобы заставлять совпадать суб-правила, укрытые с завершающим специфическим средством. Будь разработан, чтобы быть размещенным между скобкой отверстия и завершения, я схватил:

 '(' ~ ')' <expression>

В этом объяснении также эта соединение в соответствующие доказательства в хранилище теста suite (roast) Perl6.

4
ответ дан 01.12.2019, 08:15