#ifndef CMARK_NODE_H #define CMARK_NODE_H #ifdef __cplusplus extern "C" { #endif #include #include #include "cmark.h" #include "buffer.h" #include "chunk.h" typedef struct { cmark_list_type list_type; int marker_offset; int padding; int start; cmark_delim_type delimiter; unsigned char bullet_char; bool tight; } cmark_list; typedef struct { cmark_chunk info; cmark_chunk literal; int fence_length; /* fence_offset must be 0-3, so we can use int8_t */ int8_t fence_offset; unsigned char fence_char; bool fenced; } cmark_code; typedef struct { int level; bool setext; } cmark_header; typedef struct { cmark_chunk url; cmark_chunk title; } cmark_link; struct cmark_node { struct cmark_node *next; struct cmark_node *prev; struct cmark_node *parent; struct cmark_node *first_child; struct cmark_node *last_child; void *user_data; int start_line; int start_column; int end_line; int end_column; cmark_node_type type; bool open; bool last_line_blank; cmark_strbuf string_content; union { cmark_chunk literal; cmark_list list; cmark_code code; cmark_header header; cmark_link link; } as; }; CMARK_EXPORT int cmark_node_check(cmark_node *node, FILE *out); #ifdef __cplusplus } #endif #endif