From da8857549304590d8d32e643a22617318add542a Mon Sep 17 00:00:00 2001 From: Loic Guegan Date: Wed, 18 Jan 2023 18:42:13 +0100 Subject: Improve NAG parsing --- src/HalfMove.cpp | 2 +- src/HalfMove.hpp | 2 +- src/PGN.cpp | 7 +++++-- 3 files changed, 7 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/HalfMove.cpp b/src/HalfMove.cpp index 8038acb..81d9a67 100644 --- a/src/HalfMove.cpp +++ b/src/HalfMove.cpp @@ -2,7 +2,7 @@ namespace pgnp { -HalfMove::HalfMove() : count(-1), isBlack(false), MainLine(NULL) {} +HalfMove::HalfMove() : count(-1), isBlack(false), MainLine(NULL), NAG(0) {} HalfMove::~HalfMove() { delete MainLine; diff --git a/src/HalfMove.hpp b/src/HalfMove.hpp index 47caf05..45eb96c 100644 --- a/src/HalfMove.hpp +++ b/src/HalfMove.hpp @@ -24,7 +24,7 @@ public: std::string move; /// @brief Comment associated to the move std::string comment; - std::string NAG; + std::uint8_t NAG; /// @brief Next HalfMove link to this line HalfMove *MainLine; /// @brief Next HalfMove links to variation of this line diff --git a/src/PGN.cpp b/src/PGN.cpp index c0c80e3..831de6e 100644 --- a/src/PGN.cpp +++ b/src/PGN.cpp @@ -260,16 +260,19 @@ loctype PGN::ParseHalfMove(loctype loc, HalfMove *hm) { EOF_CHECK(loc); c = pgn_content[loc]; if (c == '$') { - hm->NAG += c; + //hm->NAG += c; + std::string NAG; loc++; EOF_CHECK(loc); c = pgn_content[loc]; while (IS_DIGIT(c)) { - hm->NAG += c; + NAG += c; loc++; EOF_CHECK(loc); c = pgn_content[loc]; } + if(NAG.size()>0) + hm->NAG=std::stoi(NAG); } } else if (c == '(') { // Check for variations -- cgit v1.2.3