Может ли программа повышения настроения сканировать синтаксическое дерево и давать результаты?

Я хочу написать небольшой язык, и я решил использовать Повысить дух. Это выглядит хорошо для меня. Я знаю, что могу использовать дух, чтобы написать лексер, и парсер, чтобы создать синтаксическое дерево. Возможно ли в Spirit отсканировать синтаксическое дерево и получить результаты. (или это только для разбора?) Есть ли доступные функции для генерации результатов, или мне нужно использовать другой инструмент? Извините за этот простой вопрос, но я действительно не смог найти информацию при кратком рассмотрении документации Spirit.

В дополнение к этому, могу ли я использовать свой собственный лексер с парсером, написанным с использованием Spirit.
Заранее спасибо.

2

Решение

Действительно, это действительно будет кандидатом на «не реальный вопрос». Если бы вы не ссылались на страницу с документами, я бы отклонил ее только по этой ссылке.

Возможно, вы пропустили образцы:

  • http://www.boost.org/doc/libs/1_51_0/libs/spirit/example/qi/compiler_tutorial/

  • много версий простого калькулятора выражений (возможно, посмотрите на них в последовательном порядке)

  • заклинатель
    Этот компилятор способен компилировать и запускать простой язык. образцы Вот:

    /* The factorial (in conjure) */
    
    int factorial(n)
    {
    if (n <= 0)
    return 1;
    else
    return n * factorial(n-1);
    }
    
    int main(n)
    {
    return factorial(n);
    }
    


Q. В дополнение к этому, могу ли я использовать свой собственный лексер с парсером, написанным с использованием Spirit?

A. Да. Просто предоставьте интерфейс итератора токена и используйте его в качестве входных итераторов для API разбора. Смотрите примеры с Spirit Lex для получения дополнительной информации.

3

Другие решения

Других решений пока нет …