Execute a Markov algorithm: Difference between revisions
m
→{{header|Pascal}}: some correction
m (→{{header|Pascal}}: cosmetic) |
m (→{{header|Pascal}}: some correction) |
||
Line 3,561:
Terms := s.Split([' -> ']);
if Length(Terms) <> 2 then exit(False);
r.Pattern := Terms[0].
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 :=
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;
|