解释器模式

来源:互联网 发布:json 数据格式 编辑:程序博客网 时间:2024/06/06 12:31

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

当有一个语言需要解释执行,并且你可将该语言中的句子表示为一个抽象语法树时,可以使用它。

如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。这样就可以构建一个解释器,该解释器通过解释这些句子来解决该问题。

 

 

    class Program    {        static void Main(string[] args)        {            Context context = new Context();            IList<AbstractExpression> list = new List<AbstractExpression>();            list.Add(new TerminalExpression());            list.Add(new NonterminalExpression());            list.Add(new TerminalExpression());            list.Add(new TerminalExpression());            foreach (AbstractExpression exp in list)            {                exp.Interpret(context);            }            Console.Read();        }    }    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; }        }    }    abstract class AbstractExpression    {        public abstract void Interpret(Context context);    }    class TerminalExpression : AbstractExpression    {        public override void Interpret(Context context)        {            Console.WriteLine("终端解释器");        }    }    class NonterminalExpression : AbstractExpression    {        public override void Interpret(Context context)        {            Console.WriteLine("非终端解释器");        }    }


 

0 0
原创粉丝点击