Решил вот выложить, проверить на предмет багов/глюков.
Сам, разумеется, тестировал, вроде бы глюков нет. Но они такие, эти глюки, вылезают когда не ждешь
К посту прикрепляю два аттача. Один, схема, поясняет работу класса. Второй -- это архив с самим классом и примером его использования. Класс позволяет использовать в выражениях переменные и функции, примеры их использования можно увидеть в тестовом проекте (возвращаются через события).
Ах, да, это спагетти в самом его жутком проявлении
Но что делать, лекции по автоматам я в свое время прогуливал.