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