Re[2]: Парсер - писать самому или взять генератор
От: bybor  
Дата: 15.06.09 13:37
Оценка:
Здравствуйте, vmpire, Вы писали:

V>Самый быстрый и реально работающий способ (не без недостатков, конечно) это тупо писать выражения на C#, а потом компилировать их в runtime и выполнять. Удобно для этого завести базовый класс с виртуальным методом типа Calculate, а динамический класс от него наследовать. В нём тогда можно наопределять protected методов Min, Max и всё, что угодно.

Мне всё равно придётся парсить каким-то образом введённый текст. Хотя бы для выделения имён переменных (полей таблицы). В случае ошибки ввода — будет сложнее сказать пользователю что не так. Отдавать ему сообщения компилятора как-то не катит. Одно дело генерить код на C# на основе ввода, а другое — рассматривать ввод как готовый код. ИМХО, конечно.

V>Плюсы — выражение будет вычисляться быстро и очень легко расширять дополнительными функциями.

V>Минус — на C# пользователь может написать больше, чем того хотелость, то есть тут потенцияльная дырка в секьюрити. Дырка закрывается дополнительной валидацией скомпилированного.
Ага, принцип понял. Спасибо.
... << RSDN@Home 1.2.0 alpha 4 rev. 1228>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.