aboutsummaryrefslogtreecommitdiff
path: root/src/pgnp.cpp
diff options
context:
space:
mode:
authorLoic Guegan <manzerbredes@mailbox.org>2022-01-24 16:41:02 +0100
committerLoic Guegan <manzerbredes@mailbox.org>2022-01-24 16:41:02 +0100
commite6e2c5a8bf5c99119799c9ac706c4428fec6b5aa (patch)
tree90a5d47ea2c7bb46fce75d5ed5fe667aa5b05637 /src/pgnp.cpp
parent55b2c72108b1206d8b2f8565e2bc6f398a74cd2c (diff)
Improve tests
Diffstat (limited to 'src/pgnp.cpp')
-rw-r--r--src/pgnp.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/pgnp.cpp b/src/pgnp.cpp
index bb9fd29..5336cd6 100644
--- a/src/pgnp.cpp
+++ b/src/pgnp.cpp
@@ -239,7 +239,12 @@ int PGN::ParseNextTag(int start_loc) {
tags[key] = value;
tagkeys.push_back(key);
- // TODO: Check that caracters if a ]
+ EOF_CHECK(valueloc + 1);
+ c = pgn_content[valueloc + 1];
+ if (c != ']') {
+ throw UnexpectedCharacter(c, ']', valueloc + 1);
+ }
+
return (valueloc + 1); // +1 For the last char of the tag which is ']'
}
@@ -247,7 +252,12 @@ HalfMove *PGN::GetMoves() { return (moves); }
std::vector<std::string> PGN::GetTagList() { return tagkeys; }
-std::string PGN::GetTagValue(std::string key) { return tags[key]; }
+std::string PGN::GetTagValue(std::string key) {
+ if (tags.find(key) == tags.end()) {
+ throw InvalidTagName();
+ }
+ return tags[key];
+}
void PGN::Dump() {
std::cout << "---------- PGN DUMP ----------" << std::endl;