Реферат: Синтаксический разбор строк и конечные автоматы
// предыдущему атрибуту не присвоено никаких значений,
// добавляем пустую строку в список Values
Values.Add('');
State := ReadAttr;
StartPos := i;
end;
end;
WaitValue:
if (Tag[i] in Delimeters) = False then
begin
if Tag[i] = '=' then
begin
// два символа '=' подряд
Result := resBadSyntax;
Exit;
end;
if Tag[i] = '"' then
begin
// чтение значения начнется со следующего символа после кавычек:
StartPos := i + 1;
State := ReadValueDQ;
end else
if Tag[i] = '''' then
begin
// чтение значения начнется со следующего символа после кавычек:
StartPos := i + 1;
State := ReadValueSQ;
end else
begin