هل هناك مكتبة لـ .NET تقوم بواقصة أو تعبير التعبير وتحسينها؟
-
24-09-2019 - |
سؤال
هل هناك مكتبة لـ .NET تقوم بواقصة أو تعبير التعبير وتحسينها؟ شيء من شأنه أن يأخذ تعبيرًا مثل (A & (((B) | (C)) | D))) والعودة
A & (B | C | D)
ولكن أيضا خذ (A&A) وإرجاع أ
المحلول
هذا أكثر في مجال محلل محلل/معجمي مستقل. لكن Antlr لديه ملزمة C# لطيفة إلى حد ما ، إذا كان ذلك يناسب أغراضك.
ربما لن يكون العمل كثيرًا لكتابة محلل بسيط للسلاسل من هذا النوع والقيام بالتخفيض بنفسك.
نصائح أخرى
أنا لست خبيرًا في LINQ ، ولكن إذا كنت تريد أن تتسخ يديك ، فإن بنية البيانات لمثل هذه المهمة موجودة بالفعل في أشجار التعبير .NET:
http://msdn.microsoft.com/en-us/library/bb397951.aspx
لا يزال يتعين عليك تحليل السلسلة لإنشاء الشجرة.
لا تنتمي إلى StackOverflow