Tôi đang viết một ứng dụng cho phép người dùng nhập biểu thức logic. Tôi cần khả năng đánh giá biểu thức boolean được nhập vào lúc chạy và đang tìm cả trình phân tích cú pháp và trình xác thực expressoin.Trình phân tích cú pháp Boolean và Math
Parser
Các phân tích cú pháp cần phải mất một biểu thức boolean như là một chuỗi và trả về đúng/sai.
Ví dụ:
string expression = "(1 == 1) && (1 > 0)"; Parser parser = new Parser(); boolean result = parser.parse(expression); // Result should be True.
Ngoài xử lý biểu thức boolean Tôi cũng cần nó để xử lý Math.
expression = "((1 + 1 * 2) == 1)"; result = parser.parse(expression); // Result should be False.
Validate
Vì vậy mà tôi có thể nói cho người dùng nếu có một vấn đề với các biểu hiện được nhập Tôi cũng cần một cách để xác nhận các cú pháp.
Tôi đang làm việc trong C# bằng .NET Compact Framework, nhưng nếu bạn biết điều gì đó được viết bằng ngôn ngữ khác có thể hữu ích.
Cảm ơn bạn đã trợ giúp bạn có thể cung cấp. Tom
+1 cho ANTLR. Nếu bạn nhìn vào điều này và bỏ qua nó, nghĩ rằng đây là quá nhiều rắc rối, hãy xem xét lại. Tôi khuyên bạn nên sử dụng ANTLRworks như một công cụ phát triển ngữ pháp và có nó xuất ra các lớp lexer và phân tích cú pháp của nó vào cây dự án Visual Studio của bạn. Nó tương đối liền mạch và dễ dàng lặp lại ngữ pháp của bạn và nhanh chóng nhìn thấy hiệu ứng của nó trong thế giới .NET của bạn. –
Bởi "bạn" ở trên, tôi có nghĩa là Thomas OP. –
@Chris Nông dân: Đây là mục tiêu nhắm mục tiêu C# Compact Framework ... có thể hơi nặng một chút ... – t0mm13b