| 意图 | 用对象结构表示语法并解释 |
|---|---|
| 适用 | 简单、稳定、变更少的小语言 |
| 边界 | 复杂语法 → 解析器生成器/DSL 库 |
结构示意
结构示意
rule := and(or(equals("tier","vip"), gt("amount",1000)), not(blacklist))
// 每个节点实现 interpret(context)为小型语言/规则定义语法树并解释执行:表达式、规则引擎、查询条件的经典结构;复杂语法优先用解析器生成器(ANTLR 等)而非手写解释器。
| 意图 | 用对象结构表示语法并解释 |
|---|---|
| 适用 | 简单、稳定、变更少的小语言 |
| 边界 | 复杂语法 → 解析器生成器/DSL 库 |
rule := and(or(equals("tier","vip"), gt("amount",1000)), not(blacklist))
// 每个节点实现 interpret(context)