mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-18 05:39:26 +02:00
* initial, unfinished implementation
git-svn-id: trunk@5508 -
This commit is contained in:
parent
4ae36f609a
commit
9da91645d9
2
.gitattributes
vendored
2
.gitattributes
vendored
@ -5415,6 +5415,7 @@ tests/bench/shootout/io/knucleotide-output.txt svneol=native#text/plain
|
||||
tests/bench/shootout/io/moments.in -text
|
||||
tests/bench/shootout/io/moments.out -text
|
||||
tests/bench/shootout/io/recursive-output.txt svneol=native#text/plain
|
||||
tests/bench/shootout/io/regexdna-input.txt -text svneol=unset#application/octet-stream
|
||||
tests/bench/shootout/io/rev.out -text
|
||||
tests/bench/shootout/io/revfile.in -text
|
||||
tests/bench/shootout/io/revfile.out -text
|
||||
@ -5465,6 +5466,7 @@ tests/bench/shootout/src/mandelbrot.pp svneol=native#text/plain
|
||||
tests/bench/shootout/src/nsieve.pp svneol=native#text/plain
|
||||
tests/bench/shootout/src/partialsums.pp svneol=native#text/plain
|
||||
tests/bench/shootout/src/recursive.pp svneol=native#text/plain
|
||||
tests/bench/shootout/src/regexdna.pp svneol=native#text/plain
|
||||
tests/bench/shootout/src/simple_hash.pp svneol=native#text/plain
|
||||
tests/bench/shootout/src/spectralnorm.pp svneol=native#text/plain
|
||||
tests/bench/shootout/src/sumcol.pp svneol=native#text/plain
|
||||
|
1671
tests/bench/shootout/io/regexdna-input.txt
Normal file
1671
tests/bench/shootout/io/regexdna-input.txt
Normal file
File diff suppressed because it is too large
Load Diff
45
tests/bench/shootout/src/regexdna.pp
Normal file
45
tests/bench/shootout/src/regexdna.pp
Normal file
@ -0,0 +1,45 @@
|
||||
{$mode objfpc}
|
||||
{$H-}
|
||||
uses
|
||||
regexpr;
|
||||
var
|
||||
buffer : PChar;
|
||||
buffer2 : ansistring;
|
||||
seqlen : longint;
|
||||
TextBuf: array[0..$FFF] of byte;
|
||||
|
||||
procedure Load;
|
||||
var
|
||||
len : longint;
|
||||
buffersize, bufferptr: longint;
|
||||
s : Shortstring;
|
||||
begin
|
||||
buffersize:=1024;
|
||||
buffer:=getmem(buffersize);
|
||||
bufferptr :=0;
|
||||
while not eof do begin
|
||||
readln(s);
|
||||
len:=length(s);
|
||||
if (bufferptr+len+1)>buffersize then begin
|
||||
inc(buffersize,buffersize);
|
||||
reallocmem(buffer,buffersize);
|
||||
end;
|
||||
move (s[1],buffer[bufferptr],len);
|
||||
inc(bufferptr,len);
|
||||
end;
|
||||
buffer[bufferptr] := #0;
|
||||
seqlen:=bufferptr;
|
||||
writeln(seqlen);
|
||||
end;
|
||||
|
||||
procedure ReplaceNewline;
|
||||
begin
|
||||
GenerateRegExprEngine('>.*\n|\n',[],RegExprEngine);
|
||||
writeln(RegExprReplace(RegExprEngine,buffer,'',buffer2));
|
||||
DestroyRegExprEngine(RegExprEngine);
|
||||
end;
|
||||
|
||||
begin
|
||||
SetTextBuf(input, TextBuf, sizeof(TextBuf));
|
||||
Load;
|
||||
end.
|
Loading…
Reference in New Issue
Block a user