Существует ли библиотека для .NET, которая сокращает или оптимизирует скобки или выражения? - PullRequest
3 голосов
/ 03 апреля 2010

Есть ли библиотека для .NET, которая использует скобки или выражения сокращения и оптимизации? Кое-что, что принимает выражение, такое как (A & (((B) | (C)) | D))) и возвращает

A & (B | C | D)

Но также возьмите (A & A) и верните A

Ответы [ 2 ]

2 голосов
/ 03 апреля 2010

Это больше относится к области автономного синтаксического анализатора / анализатора. Но ANTLR имеет довольно хорошую привязку C #, если это будет соответствовать вашим целям.

Вероятно, было бы не очень сложно написать простой синтаксический анализатор для строк такого рода и выполнить сокращение самостоятельно.

0 голосов
/ 03 апреля 2010

Я не эксперт по LINQ, но если вы хотите испачкать руки, структуры данных для такой задачи уже существуют в деревьях выражений .Net:

http://msdn.microsoft.com/en-us/library/bb397951.aspx

Вывсе равно придется разобрать строку, чтобы создать дерево, хотя.

...