Диск с задачами: https://drive.google.com/drive/folders/1UYhSEflnfZRIPUIztbv2lOXB8HWG6Z75
Ссылка на мой сайт с запуском тестов: https://zhukdmitryolegovich.github.io/logica-2/
" := пробел (:= ␣) . := финальное состояние [] := положение курсора // используется в комментариях
SC C -> NSC NC M
где
SC
(status cursor) -{string}
(без пробелов) - состояние машины ИЗ которого мы будем переходить (по умолчанию -01
);C
(character) -{0 | 1 | "}
- на какой символ указывает курсор машина;NSC
(new status cursor) -{string}
(без пробелов) - состояние курсора В которое мы будем переходить;NC
(new character) -{0 | 1 | " | -}
- на какой символ ИЗМЕНИТСЯ символ на которых указывает курсор машина (-
- alias на то чтобы не изменять символ <=>NC = C
);M
(move) -{L | R | .}
- куда сдвинется курсор автомата после изменения:L
- влево на 1,R
- вправо на 1,.
- не сдвинется.
{input} -> {output}
строка на ввод и на вывод соответсвенно
За более подробными примерами - смортите примеры в ./rule/
и ./test/
или просто запустите их на моем сайте
ok: [ IN, EOUT, ROUT, POS ]
где
IN
(input) -{0 | 1}+
- входная строка для машиныEOUT
(expected output) -{0 | 1}+
- ожидаемая выходная строкаROUT
(resulting output) -{0 | 1}+
- полученная выходная строкаPOS
(position) -{number}
- финальная позиция курсора
при ошибках так же могут появляться поля:
status
(state cursor) -{string}
(без пробелов) - состояние на котором произошла ошибка;rule
-null
- не нашлось правила перехода для данной комбинации состояния и символа под курсором.
Можно писать комментарии в тестах и правилах после //
Можно ставить/убирать пробельные символы между, до и после элементов.
Можно указать стартовое и конечные состояния, а так же таймаут у тестов.