From 2d24daad1be91d2f49a0a56fee02d879f906655e Mon Sep 17 00:00:00 2001 From: CyC2018 Date: Wed, 28 Oct 2026 13:35:21 +0800 Subject: [PATCH] =?UTF-8?q?Update=20=E8=AE=BE=E8=AE=A1=E6=A8=A1=E5=BC=8F?= =?UTF-8?q?=20-=20=E8=A7=A3=E9=87=8A=E5=99=A8.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 解析树示例中 B 和 C 之间补上 Or。 --- notes/设计模式 - 解释器.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/notes/设计模式 - 解释器.md b/notes/设计模式 - 解释器.md index dda454a3..6c1f9364 100644 --- a/notes/设计模式 - 解释器.md +++ b/notes/设计模式 - 解释器.md @@ -12,7 +12,7 @@ ### 实现 以下是一个规则检验器实现,具有 and 和 or 规则,通过规则可以构建一棵解析树,用来检验一个文本是否满足解析树定义的规则。 -例如一棵解析树为 D And (A Or (B C)),文本 "D A" 满足该解析树定义的规则。 +例如一棵解析树为 D And (A Or (B Or C)),文本 "D A" 满足该解析树定义的规则。 这里的 Context 指的是 String。 @@ -89,11 +89,11 @@ public class Client { Expression terminal2 = new TerminalExpression("B"); Expression terminal3 = new TerminalExpression("C"); Expression terminal4 = new TerminalExpression("D"); - // B C + // B Or C Expression alternation1 = new OrExpression(terminal2, terminal3); - // A Or (B C) + // A Or (B Or C) Expression alternation2 = new OrExpression(terminal1, alternation1); - // D And (A Or (B C)) + // D And (A Or (B Or C)) return new AndExpression(terminal4, alternation2); } @@ -116,7 +116,7 @@ false - [java.util.Pattern](http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html) - [java.text.Normalizer](http://docs.oracle.com/javase/8/docs/api/java/text/Normalizer.html) - All subclasses of [java.text.Format](http://docs.oracle.com/javase/8/docs/api/java/text/Format.html) -- [javax.el.ELResolver](http://docs.oracle.com/javaee/7/api/javax/el/ELResolver.html) +- [javax.el.ELResolver](http://docs.oracle.com/javaee/7/api/javax/el/ELResolver.html)(EL API,不属于 JDK) ## 参考资料