Есть ли библиотека для .NET, которая использует скобки или выражения сокращения и оптимизации? Кое-что, что принимает выражение, такое как (A & (((B) | (C)) | D))) и возвращает
A & (B | C | D)
Но также возьмите (A & A) и верните A
Это больше относится к области автономного синтаксического анализатора / анализатора. Но ANTLR имеет довольно хорошую привязку C #, если это будет соответствовать вашим целям.
Вероятно, было бы не очень сложно написать простой синтаксический анализатор для строк такого рода и выполнить сокращение самостоятельно.
Я не эксперт по LINQ, но если вы хотите испачкать руки, структуры данных для такой задачи уже существуют в деревьях выражений .Net:
http://msdn.microsoft.com/en-us/library/bb397951.aspx
Вывсе равно придется разобрать строку, чтобы создать дерево, хотя.