You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
671 B
32 lines
671 B
#ifndef PARSER_H
|
|
#define PARSER_H
|
|
|
|
#include "common.h"
|
|
|
|
enum Parser_Object_Type
|
|
{
|
|
PO_ENTITY,
|
|
PO_MATERIAL,
|
|
PO_MODEL,
|
|
PO_UNKNOWN
|
|
};
|
|
|
|
struct Parser_Object
|
|
{
|
|
int type;
|
|
struct Hashmap* data;
|
|
};
|
|
|
|
struct Parser
|
|
{
|
|
char* filename;
|
|
struct Parser_Object* objects;
|
|
};
|
|
|
|
typedef void (*Parser_Assign_Func)(const char* key, const char* value, const char* filename, int current_line);
|
|
|
|
bool parser_load(FILE* file, const char* filename, Parser_Assign_Func assign_func, bool return_on_emptyline, int current_line);
|
|
struct Parser* parser_load_objects(FILE* file, const char* filename);
|
|
void parser_free(struct Parser* parser);
|
|
|
|
#endif
|
|
|