-void parse(FILE* file, int* length);
-
-
-static char task_md[] = "###";
+char* read_file(char* file_name, long* size);
+
+/* callbacks to parser */
+int enter_block(MD_BLOCKTYPE type, void* detail, void* userdata);
+int leave_block(MD_BLOCKTYPE type, void* detail, void* userdata);
+int enter_span(MD_SPANTYPE type, void* detail, void* userdata);
+int leave_span(MD_SPANTYPE type, void* detail, void* userdata);
+int text(MD_TEXTTYPE type, const MD_CHAR* text, MD_SIZE size, void* userdata);
+void debug_log(const char* msg, void* userdata);
+void syntax(void);
+
+const MD_PARSER parser = {
+ 0,
+ MD_DIALECT_COMMONMARK,
+ &enter_block,
+ &leave_block,
+ &enter_span,
+ &leave_span,
+ &text,
+ &debug_log,
+ &syntax
+};