Чекер для работы с выражениями

Задача

Общая постановка задачи

Вычисление выражений из файла.

На вход подается файл, в каждой строке которого есть инициализация переменной или вычисление выражения. Требуется вычислить выражение в контексте определенных раннее переменных или вывести номер строки с ошибкой.

Пример:
x:=10;
y:=14;
z:=(x+y)*5;
z+x*(12+y);
Результат:
380

Параметры

Программа получает параметры из входного потока и должна проверить их корректность. Параметры:

input_file

x0

y0

x1

y1

commands

input_file - BMP файл

x0 y0 левый верхний угол области (отсчет с точки 0, 0)

x1 y1 правый нижний угол области

commands - числовой массив неизвестной длины, который хранит в себе последовательность функций обработки входного файла. Массив заканчивается числом 4 - функцией сохранения результата в новом файле.

В случае, если программа получила некорректные параметры, то:

операционной системе возвращается ненулевой код возврата (return в main)

не создается выходного в файла

выводится сообщение об ошибке “Fail with <имя параметра>”.

Общие сведения

24 бита на цвет

без сжатия

файл всегда соответствует формату (проверять не нужно)

обратите внимание на выравнивание; мусорные данные, если их необходимо дописать в файл для выравнивания, должны быть нулями.

обратите внимание на порядок записи пикселей

все поля стандартных BMP заголовков в выходном файле должны иметь те же значения что и во входном (разумеется кроме тех, которые должны быть изменены).