Чтобы понять, как perl6 анализирует ваш код, вы можете использовать параметр --target
:
$ perl6 --target=parse -e '"Hello World".say'
- statementlist: "Hello World".say
- statement: 1 matches
- EXPR: .say
- 0: "Hello World"
- value: "Hello World"
- quote: "Hello World"
- nibble: Hello World
- OPER: .say
- sym: .
- dottyop: say
- methodop: say
- longname: say
- name: say
- identifier: say
- O: <object>
- dotty: .say
- sym: .
- dottyop: say
- methodop: say
- longname: say
- name: say
- identifier: say
- O: <object>
$
Намного лучше модуль Grammar::Tracer
, описанный здесь. Согласно документации модуля, нужно просто добавить use Grammar::Tracer
, и будет отслеживаться любая грамматика, определенная в области, в которой появляется оператор использования.
У меня простой вопрос: если я использую "звездный выпуск", какой самый простой способ получить трассировку (используя Grammar :: Tracer) в самой грамматике Perl6?
Кроме того, если я использую rakudobrew, какой самый простой способ получить отслеживание саму грамматику Perl6?
рекомендуется, чтобы пользователи perl6 использовали звездные версии - было бы желание более внимательно изучить, как perl6 сам анализирует себя, используя грамматику :: Tracer, стоит ли вместо этого строить из исходников локально?