Monthly Archives: December 2008

Операторы, функции, приоритеты итд

Written by elwood

Не так давно увидел классный способ введения функции в программу (это было в какой-то институтской программе к лабораторной работе). Программа та была написана на дельфи, и при нажатии на кнопку “строить график” она создавала файл проекта .dpr, который далее компилировался в dll с одной функцией, которая и производила указанные вычисления. Оценив ущербность этого метода, загорелся написать свою реализацию разбора математических выражений ) В итоге захотелось сделать небольшую библиотечку, в которой поддерживаемые операторы и функции можно было бы добавить быстро и непринужденно. В итоге получилась компактная расширяемая либа, где добавление операции в мат аппарат может быть осуществлен внесением нескольких строчек xml-конфига и написанием класса, который будет реализовывать указанную операцию. Можно поэкспериментировать с приоритетами, сигнатурами ) Также поддерживаются тернарные операторы (как, например, ? : ), или операторы с более чем тремя операндами (какой-нибудь a ! b !! c !!! d). Тестовое приложение WinForms показывает, насколько просто пользоваться этим кодом. Конструктивные отзывы, багрепорты и предложения по улучшению – сюда. Выкладываю первую тестовую версию,

mathcompiler