52704.fb2
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;