Написать парсер арифметического выражения на чистом СИ
Имеется входной файл "input.txt" в котором будет находиться арифметическое выражение которое необходимо решить или вывести ошибку если имеется синтаксическая ошибка(например вместо знака "/" будет "%" или вместо "sin" будет опечатка "son" или вместо 0(ноль) будет О(большая буква о)) в самом выражении в файле.
Арифметическое выражение может быть произвольным и в его записи может быть любое количество пробелов(например: 100 + 3) или пробелов между цифрами или знаком операции может не быть вообще (sin(45)+cos(30))), т.е количество пробелов не должно влиять на решение примера.
Это выражение может содержать ( ), +, -, *, /.
Так же могут быть функции с 1 параметром это: sin, cos, tan, log, exp, sqrt.
И функции с 2 параметрами: min(минимальное значение из двух чисел), max(максимальное значение из двух чисел), nsn(наименьшее общее кратное), nsd(наименьший общий делитель).
Сделать это обычным консольным приложением, в котором на первой строке будет выведен наш пример из файла, а на следующей строке будет выведен его результат (например Результат выражения равен : и ответ). Так же в консоль вывести сообщение об ошибке если она будет присутствовать в выражении и указать что именно за ошибка(например "Не разрешенный символ").
Пример арифметического выражения:
(5 * sin(x)-1.05e4)/((2 * 9+ 2) * (2 *6+ 3)) * sqrt(64) - min(60, 70) +nsd(10, 100)