Багато з цих інструментів роблять роботу безпосередньо з абстрактним синтаксичним деревом (або , вірніше, пряма візуалізацією один-до-одного з нього). Це включає в себе блок, які ви вже бачили, і інші блоки на основі мов і редактор , це подобається ( Подряпини , олівець код / Капелька , Snap! , GP , Плитковий Грейс , і так далі).
Ці системи не показують традиційного представлення вершин і крайових графіків з причин, пояснених в інших місцях (простір, а також труднощі взаємодії), але вони безпосередньо представляють дерево. Один вузол, або блок, є дитиною іншого, якщо він знаходиться безпосередньо, фізично всередині батьків.
Я побудував одну з цих систем ( Черепиця Грейс , папір , папір ). Можу запевнити, що дуже сильно працює з AST безпосередньо: те, що ви бачите на екрані, - це точне зображення синтаксичного дерева, як вкладених елементів DOM (так, дерево!).
Це AST деякого коду. Корінь - це вузол виклику методу "for ... do". У цьому вузлі є кілька дітей, починаючи з "_ .. _", який сам має двох дітей, вузол "1" та вузол "10". Що з'являється на екрані - це саме те, що сервер компілятора виплює в середині процесу - саме в цьому принципі працює система.
Якщо вам подобається, ви можете розглядати це як стандартний макет дерева, ребра, спрямовані на екран до вас (і затиснуті блоком перед ними), але вкладення є таким же правильним способом показу дерева як вершини діаграма.
Він також "зробить зворотну поїздку від джерела до вузла-графіка, а потім знову повернеться до джерела, коли це необхідно". Насправді ви можете бачити це, коли натискаєте "Перегляд коду" внизу. Якщо ви модифікуєте текст, він буде повторно проаналізований, а отримане дерево буде надано вам знову редагувати, а якщо ви модифікуєте блоки, те ж саме відбувається і з джерелом.
Код олівця робить по суті те ж саме, що є, в даний момент, кращим інтерфейсом . Блоки, які він використовує, - це графічний вигляд CoffeeScript AST. Так само, як і інші системи на основі блоків або плиток, за великим рахунком, хоча деякі з них не роблять вкладений аспект настільки чітким у візуальному зображенні, а багато хто не мають фактичної мови тексту за ними, так що " синтаксичне дерево "може бути трохи ілюзорним, але принцип є.
Те , що ви НЕ вистачає, то, що ці системи дійсно є безпосередньо роботи з абстрактним синтаксичним деревом. Те, що ви бачите та маніпулює, - це простоефективна візуалізація дерева, у багатьох випадках буквально AST створює компілятор або аналізатор.