Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.03.2009, 11:04   #1
NieL
Форумчанин
 
Регистрация: 17.11.2008
Сообщений: 116
По умолчанию Логический анализатор

Пишу анализатор логических выражений в списке. Вот наброски:

Код:
uses ComObj;

{$R *.dfm}

function Calc(const CalcStr: AnsiString): AnsiString;
var
  v : Variant;
begin
  v := CreateOleObject('MSScriptControl.ScriptControl');
  v.Language := 'JScript';
  Result := v.Eval(CalcStr);
  v := Unassigned;
end;

function Replace(Text: AnsiString): AnsiString;
begin
  Text := StringReplace(Text, 'and', '&', [rfReplaceAll, rfIgnoreCase]);
  Text := StringReplace(Text, 'or', '|', [rfReplaceAll, rfIgnoreCase]);
  Result := Calc(Text);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
  s: string;
begin
  s := '1 and (1 and 1)';
  //s := 'abc and abc';
  label1.Caption := Replace(s);
end;
Числовые логические выражения анализируются на ура, а вот с анализом строк проблема. Посоветовали использовать скрипт-движок PascalScript, но никак не разбирусь что да как там, примеров в инете так и не нашел. Может кто делал что-то аналигичное или работал с PascalScript поделитесь инфой.
NieL вне форума Ответить с цитированием
Старый 10.03.2009, 13:28   #2
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Существую различные синтаксические и лексические анализаторы. Я бы посоветовал с их помощью написать
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Синтаксический анализатор delphin100 Общие вопросы Delphi 10 01.05.2010 12:50
Лексический анализатор serguna005 Паскаль, Turbo Pascal, PascalABC.NET 5 06.12.2008 00:00
Логический адрес InitInstance Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 24.03.2008 10:33
Анализатор формул KJIOyH Помощь студентам 1 05.11.2007 18:18