Реферат: Синтаксический разбор строк и конечные автоматы
StartPos := i;
State := ReadValue;
end;
end;
ReadValue:
if Tag[i] in Delimeters then
begin
// чтениезначениязакончено
Values.Add(GetSubString(Tag, StartPos, i));
State := WaitAttr;
end;
ReadValueDQ:
if Tag[i] = '"' then
begin
// чтение значения в двойных кавычках закончено
Values.Add(GetSubString(Tag, StartPos, i));
State := WaitAttr;
end;
ReadValueSQ:
if Tag[i] = '''' then
begin
// чтение значения в одинарных кавычках закончено
Values.Add(GetSubString(Tag, StartPos, i));
State := WaitAttr;
end;
end; // case State of
Inc(i);
end; // while (Body[i]<>'>') and (i<Length(Tag)) do
// проверяем состояние автомата после обработки строки