@startuml
!define RESULT result
!define UNPARSED_RESULT unparsed_result
start
:Получаем данные, обработанные\nTextFSM со списком правил ACL acl_entries;
:Создаем два результирующих массива:
- RESULT для хранения хороших результатов
- UNPARSED_RESULT для хранения необработанных;
:Начинаем итерацию по acl_entries;
repeat
:Берем следующий элемент из acl_entries - acl_entry;
:Проверяем его содержание и в зависимости от\nнего обрабатываем соответственно;
if (acl_entry = ACL header)
:Пропускам элемент;
elseif (acl_entry = unparsed ACE)
:Записываем в список UNPARSED_RESULT;
elseif (acl_entry = ACE)
:Обрабатываем правило;
note
_parse_remark_acl_entry()
end note
:Добавляем обработанный результат в results;
elseif (acl_entry = Remark)
:Обрабатываем согласно правилам\nработы c Remark;
note
_parse_ace_acl_entry()
end note
:Добавляем обработанный результат в results;
endif
repeat while (В acl_entries есть еще элементы?)
:Возвращаем RESULT, UNPARSED_RESULT;
stop
@enduml