Кіріспе
Ағаш дерек құрылымдарын жасау үшін қолданылатын компьютерлік код тілі. Ағаш сипаттама тілі (TreeDL) – қатаң түрде типіленген ағаш дерек құрылымдарын және олармен жасалатын амалдарды сипаттауға арналған компьютерлік тіл. TreeDL-дің негізгі қолданысы – тілге бағытталған құралдарды (компиляторлар, аудармашылар және т.б.) жасау, абстрактілі синтаксистік ағаштардың құрылымын сипаттау үшін. Ағаш сипаттамасын парсер және басқа да жүйелер арасындағы интерфейстің құжаттамасы ретінде қолдануға болады; нысаналық бағдарламалау тілдерінде ағашты бейнелейтін дерек түрлерін жасау үшін бастапқы дерек көзі ретінде; түрлі қосымша кодты (келушілер, аралап өтушілер, фабрикалар және т.б.) жасау үшін бастапқы дерек көзі ретінде пайдалануға болады. TreeDL кез келген парсер генераторымен (мысалы, ANTLR, JavaCC) бірге қолданылуы мүмкін, егер ол парсерлік кезінде қосымша әрекеттерді орындауға мүмкіндік берсе.
Tree Description Language (TreeDL) is a computer language for description of strictly typed tree data structures and operations on them. The main use of TreeDL is in the development of language oriented tools (compilers, translators, etc.) for the description of a structure of abstract syntax trees. Tree description can be used as
a documentation of interface between parser and other subsystems;
a source for generation of data types representing a tree in target programming languages;
a source for generation of various support code: visitors, walkers, factories, etc. TreeDL can be used with any parser generator that allows custom actions during parsing (for example, ANTLR, JavaCC).
Тілдер туралы жалпы түсінік
Ағаш сипаттамасы ағашта рұқсат етілген түйін түрлерін тізімдейді. Түйін түрлері бір ғана мұрагерлікті қолдайды. Түйін түрлері балалары мен атрибуттарына ие. Балалар анықталған түйін түрінде болуы керек. Атрибуттар примитивті типте (сандық, жол, логикалық), enum түрінде немесе түйін түрінде болуы мүмкін. Атрибуттар ағаш құрылымы кезінде мәндік тұрақтыларды сақтауға және ағаш талдауы кезінде жиналған қосымша ақпаратты сақтауға қолданылады (мысалы, анықтама мен сілтеме арасындағы байланыстарды, жоғары деңгейлі абстрактілі синтаксисті бейнелеу үшін). Ағашпен жасалатын операциялар көпәдістілер ретінде анықталады. Бұл тәсілдің артықшылықтары Treecc: Компиляторларды жазуға бағытталған аспектілік тәсіл мақаласында сипатталған. Ағаш сипаттамалары модульділікті қамтамасыз ету және тілді кеңейту үшін негізгі тілдің ағаш сипаттамаларын қайта пайдалануға мүмкіндік беру үшін мұрагерлікті қолдайды.
Tree descriptions support inheritance to allow modularity and reuse of base language tree descriptions for language extensions.