Реферат: Синтаксический разбор строк и конечные автоматы

SetLength(Result, Stop-Start);

Move(S[Start], Result[1], Stop-Start);

end;

function ParseTag(const Tag : String; var TagName : String;

Attrs, Values : TStringList): Integer;

type

// Возможныесостояния

TState = (ReadTag, WaitAttr, WaitAttrOrEq, ReadAttr, WaitValue,

ReadValue, ReadValueSQ, ReadValueDQ);

const

// Значения, возвращаемыефункцией GetLink

resOK = 0; // разбор прошел успешно

resBadSyntax = -1; // синтаксическая ошибка

// Набор возможных разделительных символов

Delimeters = [' ', #9, #13, #10];

var

State : TState;

StartPos, i : Integer;

begin

Result := resOK;

// очищаемсписокэлементов

Attrs.Clear;

Values.Clear;

State := ReadTag; // входноесостояниеавтомата

i := 2; // пропускаемсимвол '<'

while (Tag[i]<>'>') and (i<Length(Tag)) do

begin

case State of

ReadTag:

К-во Просмотров: 450
Бесплатно скачать Реферат: Синтаксический разбор строк и конечные автоматы