From 9f3b12c9868888fdaf4c21594b130be4b6dfac00 Mon Sep 17 00:00:00 2001 From: 3lswear Date: Wed, 12 Jan 2022 12:38:52 +0300 Subject: [PATCH 1/4] more fields --- config/simple.toml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/config/simple.toml b/config/simple.toml index 0f96880..a464a76 100644 --- a/config/simple.toml +++ b/config/simple.toml @@ -1,2 +1,4 @@ name = "jopa" port = 6969 +ip = "127.0.0.1" +methods = ["GET", "POST", 1, "piska", false, false] From 4c4873a25c51f0dc90d51abe67a3b59dbf39b7c5 Mon Sep 17 00:00:00 2001 From: 3lswear Date: Wed, 12 Jan 2022 12:39:16 +0300 Subject: [PATCH 2/4] add Bool case --- src/config/TOMLNode.hpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/config/TOMLNode.hpp b/src/config/TOMLNode.hpp index 2d976cb..f265d31 100644 --- a/src/config/TOMLNode.hpp +++ b/src/config/TOMLNode.hpp @@ -104,6 +104,15 @@ class toml_node *result += " ]"; return (result); } + case BOOL: + { + std::string *result; + if (value.boolean) + result = new std::string("true"); + else + result = new std::string("false"); + return (result); + } default: return ( new std::string("Not implemented :)")); } From ac23dc656a7597cac2ed10b4c93bc5f238d3041a Mon Sep 17 00:00:00 2001 From: 3lswear Date: Wed, 12 Jan 2022 12:40:15 +0300 Subject: [PATCH 3/4] some bool changes --- src/config/TOMLParser.hpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/config/TOMLParser.hpp b/src/config/TOMLParser.hpp index ed632f3..92ed80a 100644 --- a/src/config/TOMLParser.hpp +++ b/src/config/TOMLParser.hpp @@ -62,6 +62,7 @@ namespace config } case BOOL: { + tokenizer.rollBackToken(); (*mapObject)[key] = parseBool(); break; } @@ -197,8 +198,10 @@ namespace config s_token token = tokenizer.getToken(); if (token.value == "true") value = true; - else + else if (token.value == "false") value = false; + else + throw std::invalid_argument("Unexpected bool value"); node->setBool(value); return (node); From 8010863bdaef5b105e274f99c625da14b904718c Mon Sep 17 00:00:00 2001 From: 3lswear Date: Wed, 12 Jan 2022 12:40:37 +0300 Subject: [PATCH 4/4] bool experiments --- src/config/Tokenizer.hpp | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/config/Tokenizer.hpp b/src/config/Tokenizer.hpp index 76acd5e..bae68a0 100644 --- a/src/config/Tokenizer.hpp +++ b/src/config/Tokenizer.hpp @@ -180,12 +180,25 @@ namespace config token.type = BOOL; token.value = "false"; file.seekg(4, std::ios_base::cur); + + /* token.value = ""; */ + /* while (std::isalpha(c)) */ + /* { */ + /* token.value += c; */ + /* file.get(c); */ + /* } */ + std::cerr << "value is: " << token.value << std::endl; + std::cerr << "c is: " << c << std::endl; } else if (c == 't') { token.type = BOOL; - token.value = "true"; - file.seekg(3, std::ios_base::cur); + while (std::isalpha(c)) + { + token.value += c; + file.get(c); + } + /* file.seekg(3, std::ios_base::cur); */ } else if (c == 'n') {