美文网首页
解释器模式(interpreter)

解释器模式(interpreter)

作者: 剑道_7ffc | 来源:发表于2020-07-22 14:05 被阅读0次

    一句话总结

    语法分析工具

    内容

    解释器是一个简单的语法分析工具,根据规则提取出需要的信息,针对不同的信息进行处理。

    场景

    解析数学表达式,正则表达式

    类图

    image.png

    代码示例

    // 上下文环境类
    public class Context extends HashMap {
    }
    // 抽象表达式
    public interface IExpression {
        // 对表达式进行解释
        Object interpret(Context context);
    }
    // 非终结符表达式
    public class NonterminalExpression implements IExpression {
        private IExpression [] expressions;
        public NonterminalExpression(IExpression... expressions) {
            // 每个非终结符表达式都会对其他表达式产生依赖
            this.expressions = expressions;
        }
        @Override
        public Object interpret(Context context) {
            // 进行文法处理
            context.put("","");
            return null;
        }
    }
    // 终结符表达式
    public class TerminalExpression implements IExpression {
        private Object value;
        @Override
        public Object interpret(Context context) {
            // 实现文法中与终结符有关的操作
            context.put("","");
            return null;
        }
    
    }
    

    源码体现

    ExpressionParser

    spring的ExpressionParser


    image.png

    Pattern

    Pattern对正则表达式的编译和解析

    相关文章

      网友评论

          本文标题:解释器模式(interpreter)

          本文链接:https://www.haomeiwen.com/subject/jvlzkktx.html