dotSITE
Форумы Work in Murano Software. Учебник по C#
новости материалы решения форумы группы настройки/о проекте

Interpreter

Паттерин interpreter используется для создания интерпретаторов языков, для которых задана грамматика

        namespace Interpreter_DesignPattern
        {
            using System;
            using System.Collections;

            class Context 
            {
                
            }

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

            // Класс, представляющий терминальный символ
            class TerminalExpression : AbstractExpression
            {
                override public void Interpret(Context c)   
                {
                    
                }
            }

            // Класс, представляющий грамматическое правило
            class NonterminalExpression : AbstractExpression
            {
                override public void Interpret(Context c)   
                {
                    
                }   
            }

            public class Client
            {
                public static int Main(string[] args)
                {
                    Context c = new Context();
                    ArrayList l = new ArrayList(); // На самом деле здесь должно быть дерево

                    l.Add(new TerminalExpression());
                    l.Add(new NonterminalExpression());

                    // interpret
                    foreach (AbstractExpression exp in l)
                    {
                        exp.Interpret(c);
                    }
                            
                    return 0;
                }
            }
        }
        

Back
Контакт Реклама на сайте Спонсорам Веб мастерам

Лицензионное соглашение - © 2000-2010 dotSITE
Хостинг .NET предоставлен PARKING.RU
Поддержку сайта осуществляет Murano Software Inc., Offshore software development