|
1 | 1 | # Пример кастомного DSL |
2 | 2 |
|
3 | | -**Цель примера:** Представить пример кастомного DSL для отображения контекстных диаграмм |
| 3 | +## Цель примера: |
| 4 | +Представить пример кастомного DSL для отображения контекстных диаграмм. |
| 5 | +Пользовательский DSL должен имплементировать следующий интерфейс: |
4 | 6 |
|
5 | | -Пользовательский DSL должен имплементировать следующий интерфейс |
6 | | - |
7 | | -**отображение региона** |
| 7 | +### Отображение региона |
| 8 | +``` |
8 | 9 | !unquoted procedure $Region($alias, $label, $type) |
| 10 | +... здесь PlantUML код имплементации ... |
9 | 11 | !endprocedure |
| 12 | +``` |
10 | 13 |
|
11 | | -**отображение заголовка** |
| 14 | +### Отображение заголовка |
| 15 | +``` |
12 | 16 | !unquoted procedure $Header($Title="Header", !endprocedure |
| 17 | +... здесь PlantUML код имплементации ... |
13 | 18 | !endprocedure |
| 19 | +``` |
14 | 20 |
|
15 | | -**начало отображения элемента** |
| 21 | +### Начало отображения элемента |
16 | 22 | ``` |
17 | 23 | !unquoted procedure $Entity($entity, $ACName, $id, $ACType) |
| 24 | +... здесь PlantUML код имплементации ... |
18 | 25 | !endprocedure |
19 | 26 | ``` |
20 | 27 |
|
21 | | -**конец отображения элемента** |
| 28 | +### Конец отображения элемента |
22 | 29 | ``` |
23 | 30 | !unquoted procedure $EntityEnd($entity) |
| 31 | +... здесь PlantUML код имплементации ... |
24 | 32 | !endprocedure |
25 | 33 | ``` |
26 | | -**отображения аспекта элемента** |
| 34 | +### Отображения аспекта элемента |
27 | 35 | ``` |
28 | 36 | !unquoted procedure $EntityAspect($entity, $prop) |
| 37 | +... здесь PlantUML код имплементации ... |
29 | 38 | !endprocedure |
30 | 39 | ``` |
31 | | -**отображение расширения элемента** |
| 40 | + |
| 41 | +### Отображение расширения элемента |
32 | 42 | ``` |
33 | 43 | !unquoted procedure $EntityExpand($entity, $ID) |
| 44 | +... здесь PlantUML код имплементации ... |
34 | 45 | !endprocedure |
35 | 46 | ``` |
36 | | -**для включения пользовательского DSL в контексте, необходимо задекларировать шаблон в контексте** |
| 47 | + |
| 48 | +## Для включения пользовательского DSL в контексте, необходимо задекларировать шаблон в контексте |
37 | 49 | ``` |
38 | 50 | uml: |
39 | 51 | $dsl: dsl.puml |
40 | | -``` |
| 52 | +``` |
0 commit comments