Вторая индивидуальная задача по курсу "Углубленное программирование на C/C++"
Разработайте программу-калькулятор, умеющую вычислять арифметические выражения над множествами строк. Входные данные (выражение с описанием множеств и производимых над ними операций) подаются на стандартный поток ввода программы, результат вычислений должен подаваться на стандартный поток вывода.
Поддерживаемые операции: 'U' - объединение, '^' - пересечение, '' - разность множеств, '()' - задание приоритета вычислений. Множества задаются в виде [el1,el2,...], где элементами являются строки в формате "abc def" (могут содержать пробелы). Множества могут быть пустыми. Между операциями, множествами и элементами множеств пробелы запрещены.
При вычислениях должны учитываться приоритеты операций (в том числе, заданные вручную при помощи круглых скобочек).
Элементы результирующего множества должны выводиться в лексикографическом порядке. В случае, если введенное выражение содержит ошибку, необходимо вывести в поток стандартного вывода сообщение "[error]" и завершить выполнение программы.
ВАЖНО! Программа в любом случае должна возвращать 0. Не пишите return -1, exit(1) и т.п. Даже если обнаружилась какая-то ошибка, все равно необходимо вернуть 0! (и напечатать [error] в stdout).