Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > парсер логических выражений


Автор: 4ybaka 16.1.2008, 01:50
есть строка типа "(Dog=='tom')&&(Age==12)" которую нужно "разрешить" как истинное или ложное высказывание.т.е. должна быть отдельная функция,которая выдает значения разного рода объектов(например Dog или Age) и затем другая функция "высчитывает" получившееся выражение. Вопрос: с помощью чего лучше реализовать?не так давно натыкался на такую задачу, но сейчас хоть убейте, но не помню где видел...

Автор: mr.DUDA 16.1.2008, 10:14
На codeproject есть примеры анализаторов выражений. А если решать задачу "в лоб", можно программно скомпилировать выражение в метод класса и выполнить, правда синтаксис должен соответствовать (одинарные кавычки для строк не покатят).

Автор: farad 16.1.2008, 10:39
Цитата(mr.DUDA @  16.1.2008,  10:14 Найти цитируемый пост)
можно программно скомпилировать выражение в метод класса и выполнить
 имхо самый лучший вариант,практически ничего не нужно делать и к тому же можно обеспечить поддержку синтаксисов, как минимум, C# и BASIC-а..

Автор: Stepan_Lameroff 16.1.2008, 11:30
_http://msdn.microsoft.com/msdnmag/issues/08/02/CompilerWriting/default.aspx?loc=ru

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)