pascalabcnet/SyntaxTree/tree/SyntaxGenerator.md

14 lines
1.3 KiB
Markdown
Raw Permalink Normal View History

2017-06-01 13:43:02 +03:00
# Генерация кода для узлов со списками по шаблону
2017-06-01 13:54:12 +03:00
Переменные шаблона записываются внутри символов `<#` и `#>` и могут иметь следующий вид:
2017-06-01 13:43:02 +03:00
- `<#NodeName#>` - название класса синтаксического узла
- `<#ListElementType#>` - тип элементов списка
- `<#ListName#>` - название поля, имеющиего тип `List<T>`
Шаблоны генерации находятся в папке [SyntaxTemplates](https://github.com/pascalabcnet/pascalabcnet/tree/master/SyntaxTree/tree/SyntaxTemplates):
1. [SyntaxWithListConstructors](https://github.com/pascalabcnet/pascalabcnet/blob/master/SyntaxTree/tree/SyntaxTemplates/SyntaxWithListConstructors.txt) - шаблон генерации конструкторов.
2. [SyntaxWithListMethods](https://github.com/pascalabcnet/pascalabcnet/blob/master/SyntaxTree/tree/SyntaxTemplates/SyntaxWithListMethods.txt) - шаблон генерации методов.
На этапе генерации в каждый синтаксический узел, имеющий список дочерних узлов, добавляется код, созданный по данным шаблонам.