Лабораторная
работа №1.
Преамбула
Одним из старейших интерфейсов взаимодействия человека и компьютера является CLI (Command Line Interface),
который определяет базовые правила формирования команд.
Задание
Рассмотрим упрощенные правила формирования команд в CLI:
- Команда состоит только из набора латинских букв
- Команда может иметь параметры и опции
- Параметры и опции отделяются друг от друга и от команды
произвольным кол-вом пробелов
- Параметры могут содержать латинские буквы, цифры и пробелы.
Параметр может обрамляться кавычками. Если
параметр содержит пробелы, он должен обрамляться кавычками
- Опции могут содержать латинские буквы и начинаются со знаков
"-" или "/".
Создать программу, которая на входе принимает строку, а на выходе выводит
три блока, разделенных пустой строкой:
- команду,
- количество параметров и сами параметры по одному в каждой строке,
- количество опций и сами опции по одной в каждой строке.
Если введенная строка
содержит ошибки, то на выходе программы - слово Error, номер ошибки и позиция ошибки в строке. Предлагается
использовать следующий список ошибок:
1 - команда отсутствует
2 - команда содержит некорректные символы
3 - опция содержит некорректные символы
4 - параметр содержит некорректные символы
5 - параметр не содержит закрывающую кавычку
6 - параметры, опции и команды должны отделяться друг от друга пробелами
...
500 - общая ошибка (не входящая в список)
Примеры:
Исходная строка 1:
Результат 1:
Error 1 1
Исходная строка 2:
test
Результат 2:
Error 1 1
Исходная строка 3:
test -h /h -h -f firstfile /help -suboption nextfile
Результат 2:
test
2
firstfile
nextfile
6
h
h
h
f
help
suboption
Исходная строка 4:
тест
Результат 4:
Error 2 1
Исходная строка 5:
copy abc.txt xyz.txt
Результат 5:
Error 4 9
Исходная строка 6:
copy "abc""xyz"
Результат 6:
Error 6 11
Исходная строка 7:
copy -h"abc xyz"
Результат 7:
Error 6 8
Исходная строка 8:
mv abc xyz -f-b
Результат 8:
Error 6 14
Исходная строка 9:
copy "abc xyz
Результат 9:
Error 5 15
Исходная строка 10:
xcopy /?
Результат 10:
Error 3 8