Что мне делать с конкретным синтаксическим деревом? - PullRequest
1 голос
/ 03 февраля 2010

Я использую pyPEG , чтобы создать дерево разбора для простой грамматики. Дерево представлено с использованием списков и кортежей. Вот пример:

[('command',
  [('directives',
    [('directive',
      [('name', 'retrieve')]),
     ('directive',
      [('name', 'commit')])]),
   ('filename',
    [('name', 'f30502')])])]

Мой вопрос: что мне делать с этим на данный момент? Я знаю, что многое зависит от того, что я пытаюсь сделать, но я не смог найти много о потреблении / использовании деревьев разбора, только создавая их. У кого-нибудь есть ссылки на ссылки, которые я мог бы использовать?

Спасибо за вашу помощь.

Ответы [ 2 ]

2 голосов
/ 03 февраля 2010

CST (конкретные синтаксические деревья) довольно сложны для работы по некоторым причинам .Поэтому они обычно преобразуются в AST (абстрактное синтаксическое дерево) для дальнейшей обработки (подробности в той же статье).Например, компилятор Python (компонент, который превращает исходный код Python в байт-код Python VM) переводит CST в AST как часть своей работы.

Теперь это действительно сильно зависит отконечная цель.Что вы анализируете?Что вы хотите с этим сделать?Если вы воссоздаете классический процесс компиляции, конвертация в AST, вероятно, является хорошим способом для продолжения.В противном случае вы можете найти CST достаточно - все зависит от того, что вам нужно.

0 голосов
/ 13 марта 2010

у нас есть совет сообщества для поддержки таких вопросов вокруг pyPEG.Вы можете найти его здесь: https://community.fdik.org/board/show/2/pypeg/

Ваш, VB.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...