A 3d fps game made in OpenGL
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.
 
 
 
 
Symmetry/src/common/parser.h

42 lines
1.1 KiB

#ifndef PARSER_H
#define PARSER_H
#include <stdio.h>
#include <stdbool.h>
enum Parser_Object_Type
{
PO_CONFIG,
PO_ENTITY,
PO_SCENE_CONFIG,
PO_SCENE_ENTITY_ENTRY,
PO_MATERIAL,
PO_MODEL,
PO_KEY,
PO_PLAYER,
PO_UNKNOWN
};
struct Parser_Object
{
int type;
struct Hashmap* data;
};
struct Parser
{
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);
struct Parser* parser_new(void);
struct Parser_Object* parser_object_new(struct Parser* parser, int type);
bool parser_write_objects(struct Parser* parser, FILE* file, const char* filename);
int parser_object_type_from_str(const char* str);
const char* parser_object_type_to_str(int type);
#endif