Лабораторная работа: Трансляция распознающих конечных автоматов

* Start – начальное состояние;

* InDigit – прочитана цифра;

* AfterDigit – прочитан разделитель после цифры;

* InOp – прочитан символ арифметической операции;

* InLPrnt – прочитана открывающая скобка;

* InRPrnt – прочитана закрывающая скобка.

}

const

resLPrntMissing = -1;

resRPrntMissing = -2;

var

State : TState;

i, ParCount, Numbthk : Integer;

begin

Result := 0;

ParCount := 0; // счетчик скобок

State := Start;

for i := 1 to Length(S) do

case State of

Start: // входное состояние

caseS[i] of

' ': ; // состояние не меняется

'0'..'9' : State := InDigit;

'-' : State := InOp; // символ '-' перед числом или скобкой

'(' :

begin

Inc(ParCount);

State := InLPrnt;

end;

К-во Просмотров: 285
Бесплатно скачать Лабораторная работа: Трансляция распознающих конечных автоматов