mirror of
https://gitlab.com/manzerbredes/pgnp.git
synced 2025-04-06 10:06:25 +02:00
Debug and update readme
This commit is contained in:
parent
2ec4942cc0
commit
0258e7d4f8
2 changed files with 43 additions and 6 deletions
36
README.md
36
README.md
|
@ -10,7 +10,41 @@ PGN specification can be found [here](https://www.chessclub.com/help/PGN-spec).
|
||||||
- Basic PGN parsing (tags, move, comments, variations, NAG, etc.)
|
- Basic PGN parsing (tags, move, comments, variations, NAG, etc.)
|
||||||
- Parse PGN files that contains multiple games
|
- Parse PGN files that contains multiple games
|
||||||
- Handle very large files: up to 2^(sizeof(unsigned long long)*8) bytes
|
- Handle very large files: up to 2^(sizeof(unsigned long long)*8) bytes
|
||||||
- Efficiency
|
- Efficiency:
|
||||||
|
|
||||||
|
<b></b>
|
||||||
|
|
||||||
|
# cpu: Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz
|
||||||
|
# file name: lichess_db_standard_rated_2017-06.pgn
|
||||||
|
# file sha1sum: af8e01ab9709950be1804880d22d094324df5338
|
||||||
|
# file source: https://database.lichess.org/#standard_games
|
||||||
|
# file number of games: 11512600
|
||||||
|
# file size: 24.6GB
|
||||||
|
# pgnp FILE_BUFFER_SIZE: (1024 * 1024 / 2)
|
||||||
|
|
||||||
|
> User time (seconds): 599.81
|
||||||
|
> System time (seconds): 2.72
|
||||||
|
> Percent of CPU this job got: 99%
|
||||||
|
> Elapsed (wall clock) time (h:mm:ss or m:ss): 10:03.17
|
||||||
|
> Average shared text size (kbytes): 0
|
||||||
|
> Average unshared data size (kbytes): 0
|
||||||
|
> Average stack size (kbytes): 0
|
||||||
|
> Average total size (kbytes): 0
|
||||||
|
> Maximum resident set size (kbytes): 4484
|
||||||
|
> Average resident set size (kbytes): 0
|
||||||
|
> Major (requiring I/O) page faults: 0
|
||||||
|
> Minor (reclaiming a frame) page faults: 784
|
||||||
|
> Voluntary context switches: 4
|
||||||
|
> Involuntary context switches: 6649
|
||||||
|
> Swaps: 0
|
||||||
|
> File system inputs: 0
|
||||||
|
> File system outputs: 0
|
||||||
|
> Socket messages sent: 0
|
||||||
|
> Socket messages received: 0
|
||||||
|
> Signals delivered: 0
|
||||||
|
> Page size (bytes): 4096
|
||||||
|
> Exit status: 0
|
||||||
|
|
||||||
|
|
||||||
# How to use it ?
|
# How to use it ?
|
||||||
PGNP can be used as a shared library in your project.
|
PGNP can be used as a shared library in your project.
|
||||||
|
|
13
src/PGN.cpp
13
src/PGN.cpp
|
@ -59,6 +59,10 @@ void PGN::ParseNextGame() {
|
||||||
} else if (IS_DIGIT(c)) {
|
} else if (IS_DIGIT(c)) {
|
||||||
LastGameEndLoc = ParseHalfMove(loc, moves);
|
LastGameEndLoc = ParseHalfMove(loc, moves);
|
||||||
break;
|
break;
|
||||||
|
} else if (c == '*') {
|
||||||
|
result = "*";
|
||||||
|
LastGameEndLoc=loc+1;
|
||||||
|
break;
|
||||||
} else if (c == '{') {
|
} else if (c == '{') {
|
||||||
loc = ParseComment(loc, moves);
|
loc = ParseComment(loc, moves);
|
||||||
continue; // No need loc++
|
continue; // No need loc++
|
||||||
|
@ -330,11 +334,10 @@ loctype PGN::GotoNextToken(loctype loc) {
|
||||||
c = pgn_content[loc];
|
c = pgn_content[loc];
|
||||||
if (c == '%' || c == ';') {
|
if (c == '%' || c == ';') {
|
||||||
loc = GotoEOL(loc);
|
loc = GotoEOL(loc);
|
||||||
if(!IS_EOF){
|
if (!IS_EOF) {
|
||||||
c=pgn_content[loc];
|
c = pgn_content[loc];
|
||||||
}
|
} else {
|
||||||
else{
|
return (loc);
|
||||||
return(loc);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue