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

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

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

begin

if (Ch = DecimalSeparator) then begin

PushChoice(ChoiceStack, StrInx, Move, State);

State := ScannedDecPoint;

Move := 0;

inc(StrInx);

end else

inc(Move);

end;

else

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

Move := -1;

end;

end;

ScannedDecPoint : begin

case Move of

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

begin

if TDIsDigit(Ch) then

inc(StrInx) else inc(Move);

end;

else

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

Move := -1;

end;

end;

ScanLeadDecPoint : begin

case Move of

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

begin

if TDIsDigit(Ch) then begin

PushChoice(Choicestack, StrInx, Move, State);

State := ScanDecimalDigits;

Move := 0;

inc(StrInx);

end else

inc(Move);

end;

else

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

Move := -1;

end;

end;

ScanDecimalDigits : begin

case Move of

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

begin

if TDIsDigit(Ch) then

inc(StrInx) else inc(Move);