Spec-Zone.ru › Tcllib

grammar::me::util

НАЗВАНИЕ

grammar::me::util - Утилиты для AST

Содержание

  • Содержание

  • Синопсис

  • Описание

  • Ошибки, идеи, отзывы

  • Категория

  • Авторские права

СИНОПСИС

package require Tcl 8.5 9
package require grammar::me::util ?0.2?

::grammar::me::util::ast2tree ast tree ?root?
::grammar::me::util::ast2etree ast mcmd tree ?root?
mcmd lc location
mcmd tok from ?to?
::grammar::me::util::tree2ast tree ?root?

ОПИСАНИЕ

Этот пакет предоставляет ряд вспомогательных команд для преобразования между различными представлениями абстрактных синтаксических деревьев, как указано в документе grammar::me_ast.

  • ::grammar::me::util::ast2tree ast tree ?root?

    Эта команда преобразует ast из представления в виде значения в объектное представление. Все узлы в ast будут преобразованы в узлы этого tree, при этом корень AST станет дочерним узлом узла root. Если этот узел явно не указан, используется корень дерева. Существующее содержимое дерева не затрагивается, то есть не удаляется и не изменяется, за исключением указанного корневого узла, который получит новый дочерний узел.

  • ::grammar::me::util::ast2etree ast mcmd tree ?root?

    Эта команда аналогична ::grammar::me::util::ast2tree, за исключением того, что результат представлен в расширенном объектном представлении входного AST. Источником расширенной информации является префикс команды mcmd. Он должен поддерживать два метода: lc и tok, семантика которых описана ниже.

    • mcmd lc location

      Принимает позицию токена, заданную в виде смещения во входном потоке, и возвращает список из двух элементов, содержащий соответствующий номер строки и индекс столбца в указанном порядке.

    • mcmd tok from ?to?

      Принимает одну или две позиции from и to в виде смещения во входном потоке и возвращает список Tcl, содержащий указанную часть входного потока. Обе позиции включительны. Если to не указано, по умолчанию используется значение from.

      Каждый элемент возвращаемого списка представляет собой список, содержащий токен, связанную с ним лексему, номер строки и индекс столбца в указанном порядке.

    Как команда ансамбля ::grammar::me::tcl, предоставляемая пакетом grammar::me::tcl, так и команды объектов, созданные пакетом ::grammar::me::cpu, соответствуют вышеуказанной спецификации.

  • ::grammar::me::util::tree2ast tree ?root?

    Эта команда преобразует ast в (расширенном) объектном представлении в значение и возвращает его. Если указан узел root, AST генерируется от этого узла вниз. В противном случае в качестве начальной точки используется корень объекта дерева.

Ошибки, идеи, отзывы

Этот документ и описываемый им пакет, несомненно, содержат ошибки и другие проблемы. Пожалуйста, сообщайте о них в категории grammar_me трекера Tcllib Trackers. Также сообщайте о любых идеях по улучшению пакета и/или документации.

При предложении изменений в коде, пожалуйста, предоставляйте unified diffs, то есть вывод команды diff -u.

Также обратите внимание, что вложения предпочтительнее патчей, вставленных в текст сообщения. Вложения можно прикрепить, перейдя к форме Edit тикета сразу после его создания и затем воспользовавшись крайней левой кнопкой на панели вторичной навигации.

КАТЕГОРИЯ

Грамматики и конечные автоматы

АВТОРСКИЕ ПРАВА

Copyright © 2005 Andreas Kupries

Licensed under the BSD license
https://core.tcl-lang.org/tcllib/doc/trunk/embedded/md/tcllib/files/modules/grammar_me/me_util.md

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API