mirror of
https://gitlab.com/manzerbredes/pgnp.git
synced 2025-04-07 02:26:25 +02:00
Improve parser
This commit is contained in:
parent
92350c7cc9
commit
3fb48d4f29
1 changed files with 34 additions and 23 deletions
19
src/PGN.cpp
19
src/PGN.cpp
|
@ -190,6 +190,15 @@ loctype PGN::ParseHalfMove(loctype loc, HalfMove *hm) {
|
||||||
}
|
}
|
||||||
hm->move = move;
|
hm->move = move;
|
||||||
|
|
||||||
|
loc = GotoNextToken(loc);
|
||||||
|
EOF_CHECK(loc);
|
||||||
|
c = pgn_content[loc];
|
||||||
|
|
||||||
|
while (c == '{' || c == '$' || c == '(' || c == ';' || c == '%') {
|
||||||
|
if (c == '{') {
|
||||||
|
// Parse comment
|
||||||
|
loc = ParseComment(loc, hm);
|
||||||
|
} else if (c == '$') {
|
||||||
// Check for NAG
|
// Check for NAG
|
||||||
loc = GotoNextToken(loc);
|
loc = GotoNextToken(loc);
|
||||||
EOF_CHECK(loc);
|
EOF_CHECK(loc);
|
||||||
|
@ -206,10 +215,7 @@ loctype PGN::ParseHalfMove(loctype loc, HalfMove *hm) {
|
||||||
c = pgn_content[loc];
|
c = pgn_content[loc];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else if (c == '(') {
|
||||||
// Parse comment
|
|
||||||
loc = ParseComment(loc, hm);
|
|
||||||
|
|
||||||
// Check for variations
|
// Check for variations
|
||||||
loc = GotoNextToken(loc);
|
loc = GotoNextToken(loc);
|
||||||
while (!IS_EOF && pgn_content[loc] == '(') {
|
while (!IS_EOF && pgn_content[loc] == '(') {
|
||||||
|
@ -223,6 +229,11 @@ loctype PGN::ParseHalfMove(loctype loc, HalfMove *hm) {
|
||||||
EOF_CHECK(loc);
|
EOF_CHECK(loc);
|
||||||
c = pgn_content[loc];
|
c = pgn_content[loc];
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
loc = GotoNextToken(loc);
|
||||||
|
EOF_CHECK(loc);
|
||||||
|
c = pgn_content[loc];
|
||||||
|
}
|
||||||
|
|
||||||
// Skip end of variation
|
// Skip end of variation
|
||||||
loc = GotoNextToken(loc);
|
loc = GotoNextToken(loc);
|
||||||
|
|
Loading…
Add table
Reference in a new issue