Главная » Delphi » Delphi 2006 – Шаблон Interpreter (Интерпретатор)

0

Интерпретатор — специализированный шаблон, выполняющий анализ грамматики некоторого искусственного языка и его интерпретацию. В клиентском коде первоначально формируется некоторое предложение на заранее спроектированном языке, а затем вызывается метод интерпретации (рис. 7.16).

В общем случае класс Абстрактное выражение определяет единственный метод интерпретации выражения, заданного в качестве параметра.

TAbstractExpression = class abstract public

procedure Interpret(AContext :TContext); virtual; abstract; end;

Его первый наследник — класс Терминальное выражение — определяет завершающий символ грамматики.

Рис. 7.16. Шаблон Интерпретатор в Дизайнере модели

TTerminalExpression = claea(TAbstractExpression) public

procedure Interpret(AContext :TContext);override;

end;

Его второй наследник — класс Нетерминальное выражение — определяет грамматические правила.

TNonterminalExpression = class(TAbstractExpression) strict private var

FExpression: TAbs tract Expressions-

public

procedure Interpret(AContext :TContext);override; constructor Create(AExpression :TAbstractExpression); end;   *

Для полноценной работы Интерпретатора необходимо организовать разбор текстовых строк, содержащих выражения, записанные на заданном языке. Конкретные терминальные символы и правила описываются в виде отдельных Классов — наследников указанных классов TTerminalExpression И TNonterminalExpression.

Бобровский С. И. Технологии Delphi 2006. Новые возможности. — СПб.: Питер, 2006. — 288 е.: ил.

По теме:

  • Комментарии