Ну, во-первых, вам нужно написать парсер . В зависимости от сложности вашей грамматики , вы можете сделать это вручную. Однако, если это вообще сложно, вы, вероятно, захотите использовать инструмент / библиотеку для этого.
Традиционно, вы использовали бы лексер , чтобы преобразовать ваш ввод в поток токенов . Затем вы использовали бы другой инструмент для анализа потока токенов, используя вашу грамматику. Классическим примером этого является набор инструментов Unix Lex и YACC.
Antlr - более современный (и более простой в использовании) способ анализа ввода. И это имеет тенденцию связываться с каждым проектом C #. Если вы покупаете основную книгу Antlr 4, я думаю, что ваша проблема - один из первых примеров.
Как только вы интерпретируете и понимаете вводные данные, вам нужно найти решатель , который решит уравнение.
Удачи.
Кстати, «без использования библиотек» - вещь относительная. Если вы используете какую-либо часть .NET Framework, вы «используете библиотеки». Если вы не хотите использовать какие-либо сторонние библиотеки, ознакомьтесь с некоторыми из перечисленных выше вещей, чтобы узнать, как они работают (например, как они используют регулярные выражения), и перейдите оттуда.
Как только у вас появится код для показа и возникнут проблемы, вернитесь и задайте вопрос, отвечающий за переполнение стека.