This commit is contained in:
3lswear
2022-02-14 00:31:21 +03:00
parent eaaa126e97
commit 2d44d30740
3 changed files with 14 additions and 14 deletions

View File

@@ -84,7 +84,7 @@ void toml_node::setNil(void)
type = NIL; type = NIL;
} }
void toml_node::setObject(TOMLMap *obj) void toml_node::setObject(TOMLMap &obj)
{ {
value.map = obj; value.map = obj;
type = MAP; type = MAP;

View File

@@ -16,17 +16,17 @@
class toml_node class toml_node
{ {
union u_value struct u_value
{ {
std::string *str; std::string str;
int integer; int integer;
bool boolean; bool boolean;
/* std::vector<toml_node *> *array; */ /* std::vector<toml_node *> *array; */
TOMLArray *array; TOMLArray array;
/* std::map<std::string, toml_node *> *map; */ /* std::map<std::string, toml_node *> *map; */
TOMLMap *map; TOMLMap map;
/* std::vector<std::map<std::string, toml_node> > *map_array; */ /* std::vector<std::map<std::string, toml_node> > *map_array; */
TOMLMapArray *map_array; TOMLMapArray map_array;
} value; } value;
public: public:

View File

@@ -61,11 +61,11 @@ namespace config
} }
toml_node *TOMLParser::parseMap(void) toml_node TOMLParser::parseMap(void)
{ {
/* std::cerr << "Parsing map" << std::endl; */ /* std::cerr << "Parsing map" << std::endl; */
toml_node *node = new toml_node; toml_node node;
TOMLMap *mapObject = new TOMLMap; TOMLMap mapObject;
bool completed = false; bool completed = false;
while (!completed) while (!completed)
{ {
@@ -103,24 +103,24 @@ namespace config
case STRING: case STRING:
{ {
tokenizer.rollBackToken(); tokenizer.rollBackToken();
(*mapObject)[key] = parseString(); mapObject[key] = parseString();
break; break;
} }
case OPEN_BRACKET: case OPEN_BRACKET:
{ {
(*mapObject)[key] = parseArray(); mapObject[key] = parseArray();
break; break;
} }
case NUMBER: case NUMBER:
{ {
tokenizer.rollBackToken(); tokenizer.rollBackToken();
(*mapObject)[key] = parseNumber(); mapObject[key] = parseNumber();
break; break;
} }
case BOOL: case BOOL:
{ {
tokenizer.rollBackToken(); tokenizer.rollBackToken();
(*mapObject)[key] = parseBool(); mapObject[key] = parseBool();
break; break;
} }
case MAPARRAY_DECL: case MAPARRAY_DECL:
@@ -153,7 +153,7 @@ namespace config
// throw std::logic_error("parseMap: no more tokens"); // throw std::logic_error("parseMap: no more tokens");
// } // }
} }
node->setObject(mapObject); node.setObject(mapObject);
return (node); return (node);
} }