Execute a Markov algorithm: Difference between revisions

m
→‎{{header|Pascal}}: some correction
m (→‎{{header|Pascal}}: some correction)
Line 3,561:
Terms := s.Split([' -> ']);
if Length(Terms) <> 2 then exit(False);
r.Pattern := Terms[0].TrimRightTrim;
if r.PatternReplacement := '' then exit(False)Terms[1].Trim;
r.Replacement := Terms[1].TrimLeft;
r.Terminating := False;
if (r.Replacement <> '') and (r.Replacement[1] = '.') then begin
r.Terminating := True;
Delete(r.Replacement, 1, 1);
end;
Result := True;
end;
Line 3,602 ⟶ 3,601:
repeat
Applied := False;
for r in Rules do begin
if Result.IndexOf(r.Pattern) >= 0'' then begin
Result := Result.Replace(r.Pattern, r.Replacement) + Result;
Applied := True;
end else begin
Applied := Result.IndexOf(r.Pattern) >= 0;
if Applied then
Result := Result.Replace(r.Pattern, r.Replacement);
end;
if Applied then begin
if r.Terminating then exit;
Applied := True;
break;
end;
end;
until not Applied;
end;
73

edits