1
+ #Использовать ".."
2
+ #Использовать asserts
3
+ #Использовать "features"
4
+
5
+ &Тест
6
+ Процедура Тест_Токенайзер1 () Экспорт
7
+
8
+ // Дано
9
+ Спека = Новый Массив();
10
+ Спека.Добавить(Новый СпецификацияТокенПробелы(Истина ));
11
+ Спека.Добавить(Новый СпецификацияТокенСимвол("{" , "Открыть" ));
12
+ Спека.Добавить(Новый СпецификацияТокенСимвол("}" , "Закрыть" ));
13
+ Спека.Добавить(Новый СпецификацияТокенСимвол("," , "Запятая" ));
14
+ Спека.Добавить(Новый СпецификацияТокенРегулярноеВыражение(Новый РегулярноеВыражение("(1CV8LOG)|(\(\w+ \d.\d\))" ), "Версия" ));
15
+ Спека.Добавить(Новый СпецификацияТокенРегулярноеВыражение(Новый РегулярноеВыражение("[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$" ), "Гуид" ));
16
+ Спека.Добавить(Новый СпецификацияТокенРегулярноеВыражение(Новый РегулярноеВыражение("[\da-z]+" ), "Идентификатор" ));
17
+ Спека.Добавить(Новый СпецификацияТокенСтрока());
18
+ Спека.Добавить(Новый СпецификацияТокенЧисло());
19
+ Спека.Добавить(Новый СпецификацияТокенСимвол(Символы.ПС, "ПереносСтроки" ));
20
+ Токенайзер = Новый Токенайзер(Спека);
21
+
22
+ ЧтениеТекста = Новый ЧтениеТекста("tests/features/small.lgp" );
23
+ Текст = ЧтениеТекста.Прочитать();
24
+ ЧтениеТекста.Закрыть();
25
+
26
+ // Когда
27
+ Токенайзер.Инит(Текст);
28
+
29
+ Скобарь = Новый ПарсерСкобки(Токенайзер);
30
+ Результат = Скобарь.Распарсить();
31
+
32
+ // Тогда
33
+ Ожидаем.Что(Результат.Количество()).Равно(2 );
34
+ Ожидаем.Что(Результат[0 ].Количество()).Равно(19 );
35
+ Ожидаем.Что(Результат[1 ].Количество()).Равно(19 );
36
+ Ожидаем.Что(Результат[0 ][2 ].Количество()).Равно(2 );
37
+ Ожидаем.Что(Результат[1 ][2 ].Количество()).Равно(2 );
38
+
39
+ КонецПроцедуры
0 commit comments