(*Проверка согласованности однотипных скобок в строке.*)
function ParsePh(const aStr : String) : Boolean;
const
P1 = '(';
P2 = ')';
var
i, PCnt: Integer;
Res : Boolean;
begin
PCnt := 0;
Res := True;
for i := 1 to Length(aStr) do begin
{Пропускаем символы, отличные от скобок.}
if not (aStr[i] in [P1, P2]) then Continue;
{Анализируем скобки.}
case aStr[i] of
P1 : Inc(PCnt);
P2 : Dec(PCnt);
end;
if PCnt < 0 then begin
Res := False;
Break;
end;
end;
ParsePh := Res and (PCnt = 0);
end;