zoukankan      html  css  js  c++  java
  • 解释器模式

    解释器模式(interpreter):给定一个语言,定义它的方法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。

    Context命令类,包含解释器之外的一些全局信息。

        class Context
        {
            private string _input;
            public string Input
            {
                get { return _input; }
                set { _input = value; }
            }
    
            private string _output;
            public string Output
            {
                get { return _output; }
                set { _output = value; }
            }
        }

    AbstractExpression抽象类(抽象表达式)

        abstract class AbstractExpression
        {
            public abstract void Interpret(Context context);
        }

    TerminalExpression(终结表达式),实现与方法中的终结符相关联的解释操作。实现抽象表达式中所要求的接口,主要是一个interpret()方法。方法中每一个终结符都有一个具体终结表达式与之相对应。

        class TerminalExpression : AbstractExpression
        {
            public override void Interpret(Context context)
            {
                Console.WriteLine("终端解释器");
            }
        }

    NonterminalExpression(非终结表达式),为方法中的非终结符实现解释操作。对方法中每一条规则R1、R2......Rn都需要一个具体的非终结符表达式类。通过实现抽象表达式的interpret()方法实现解释操作。解释操作以递归方法调用上面所提到的代表R1、R2......Rn中各个符号的实例变量。

        class NonterminalExpression : AbstractExpression
        {
            public override void Interpret(Context context)
            {
                Console.WriteLine("非终端解释器");
            }
        }

    客户端代码

            static void Main(string[] args)
            {
                Context context = new Context();
                IList<AbstractExpression> list = new List<AbstractExpression>();
                list.Add(new TerminalExpression());
                list.Add(new NonterminalExpression());
    
                foreach (var exp in list)
                {
                    exp.Interpret(context);
                }
    
                Console.ReadKey();
            }
  • 相关阅读:
    Assembly 学习随笔——第一章
    实验 9 根据材料编程
    实验五 编写、调试具有多个段的程序
    汇编实验四 [bx]和loop的使用
    汇编实验 三 编程、编译、连接、跟踪
    汇编实验二 用机器指令和汇编指令编程
    实验一 查看CPU和内存,使用机器语言和汇编语言进行编程
    汇编第一章
    sqlmap的安装
    sql注入-输入’or 1=1#
  • 原文地址:https://www.cnblogs.com/baiqjh/p/2846439.html
Copyright © 2011-2022 走看看