Самая короткая версия кода Брайана Мороза:
Screen.ActiveForm.GetFormImage.SaveToFile(Screen.ActiveForm.Caption+'.bmp');
Только одна строка кода (Снимок экрана активного окна в приложении MDI).
К сожалению, документация Верхушки дерева сосет. Много. И примеры на веб-сайте не полезны. Я нашел, что dzone имеет довольно большое количество грамматик верхушки дерева:
Я следовал этому Начальному учебному пособию по Treetop пару лет назад, чтобы понять основы Treetop.
А затем Краткое введение в написание синтаксического анализатора с Treetop , полезное для меня, потому что оно объяснило, как сопоставить узлы синтаксического дерева с экземплярами класса ruby.
Документы Treetop, кажется, предполагают, что вы уже знаете достаточно о разборе грамматик выражений (PEG). Treetop полностью основан на PEG. Хотя PEG больше, чем просто Treetop, то есть они используются и в других библиотеках синтаксического анализа. Изучая Treetop, я обнаружил, что очень полезно изучать PEG в целом. Это помогло заполнить многие пробелы в документации.
Я только начал экспериментировать с TreeTop.
Я попробовал изменить
rule num
(float / integer)
end
на
rule num
(float / integer)
{
def eval
text_value.to_f
end
}
end
, и, похоже, это сработало.
Вы, наверное, оцените милое, простое учение Пола Баттли в Начав с Treetop
Начиная с минимальной грамматики, он показывает, как создать парсер, а затем через пару итераций добавляет немного функциональности. Этого было достаточно, чтобы вытащить меня из стартовых блоков.
Роланд Свинглер представил LRUG презентацию о Treetop: http://skillsmatter.com/podcast/ajax-ria/treetop , которую я нашел полезным для начала .
Цитрусовые - гораздо более легкая альтернатива верхушкам деревьев: http://github.com/mjijackson/citrus