52704.fb2 Фундаментальные алгоритмы и структуры данных в Delphi - читать онлайн бесплатно полную версию книги . Страница 167

Фундаментальные алгоритмы и структуры данных в Delphi - читать онлайн бесплатно полную версию книги . Страница 167

Move := 0;

inc(StrInx);

end else

inc(Move);

end;

1 : {переход к ScanLeadDigits с использованием цифры}

begin

if TDIsDigit (Ch) then begin

PushChoice(ChoiceStack, StrInx, Move, State);

State := ScanLeadDigits;

Move := 0;

inc(StrInx);

end else

inc(Move);

end;

2 : {переход к ScanLeadDigits с использованием десятичного разделителя}

begin

if (Ch = DecimalSeparator) then begin

PushChoice(ChoiceStack, StrInx, Move, State);

State := ScanLeadDecPoint;

Move := 0;

inc(StrInx);

end else

inc(Move);

end;

else

{для этого состояния допустимые переходы отсутствуют}

Move := -1;

end;

end;

Scanlnteger : begin

case Move of

0 : {сохранить данное состояние для текущей цифры}

begin

if TDIsDigit(Ch) then

inc(StrInx) else inc(Move);

end;

else

{для этого состояния допустимые переходы отсутствуют}

Move := -1;

end;

end;

ScanLeadDigits : begin

case Move of

0 : {сохранить данное состояние для текущей цифры}

begin

if TDIsDigit(Ch) then

inc(StrInx) else

inc(Move);

end;