Поиск:

Ответ в темуСоздание новой темы Создание опроса
> AST, Построение синтаксического дерева 
:(
    Опции темы
Landing
Дата 25.1.2010, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 1.7.2008

Репутация: нет
Всего: нет



Не могу понять принцип построения деревьев, что считать узлом, как вложить узел в узел.
Есть задача. Дано определение языка для книг-игр, язык состоит из глобальных переменных и функций. (исходный код):
Код

# Переменные начинаются с $
$a = 2 + 3;
$b = $a + 10; 
# Команда вызова функции (для вызова первой функции)
call @Func_1

# Название функции (объект выполнения) 
@Func_1
{
   # Название переменной всегда статично
   # Определяет основной текст сюжета
   $text = "Сюжет";

   # Команда. Добавление вещей в список   
   add "ключ";
   add "топор";

  call @Func_2
}


Представляю себе дерево следующим образом:
Код

AST - STMT -| Variable
                  -| STMT -| Variable
                               -| STMT -| Function
                                            -|STMT -| Variable
                                                        -| STMT -| Command
                                                                     -| STMT -| ...                                                                            


Но такой подход мне кажется не правильным, ветка у которого растет из ветки, следующая ветка растет из следующей ветки и т.д.
Как еще можно представить дерево? Очень много всего перечитал, но для своей задачи, кроме как применение дополнительного промежуточного узла STMT ничего лучше не придумал.



PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0577 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.