diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/cmark.h | 99 | ||||
-rw-r--r-- | src/node.h | 98 |
2 files changed, 99 insertions, 98 deletions
diff --git a/src/cmark.h b/src/cmark.h index 9397d69..de62fe2 100644 --- a/src/cmark.h +++ b/src/cmark.h @@ -11,6 +11,42 @@ extern "C" { #define CMARK_VERSION "0.1" typedef enum { + // Block + CMARK_NODE_DOCUMENT, + CMARK_NODE_BQUOTE, + CMARK_NODE_LIST, + CMARK_NODE_LIST_ITEM, + CMARK_NODE_FENCED_CODE, + CMARK_NODE_INDENTED_CODE, + CMARK_NODE_HTML, + CMARK_NODE_PARAGRAPH, + CMARK_NODE_ATX_HEADER, + CMARK_NODE_SETEXT_HEADER, + CMARK_NODE_HRULE, + CMARK_NODE_REFERENCE_DEF, + + CMARK_NODE_FIRST_BLOCK = CMARK_NODE_DOCUMENT, + CMARK_NODE_LAST_BLOCK = CMARK_NODE_REFERENCE_DEF, + + // Inline + CMARK_NODE_STRING, + CMARK_NODE_SOFTBREAK, + CMARK_NODE_LINEBREAK, + CMARK_NODE_INLINE_CODE, + CMARK_NODE_INLINE_HTML, + CMARK_NODE_EMPH, + CMARK_NODE_STRONG, + CMARK_NODE_LINK, + CMARK_NODE_IMAGE, + + CMARK_NODE_FIRST_INLINE = CMARK_NODE_STRING, + CMARK_NODE_LAST_INLINE = CMARK_NODE_IMAGE, + + // Other + CMARK_NODE_LINK_LABEL +} cmark_node_type; + +typedef enum { CMARK_BULLET_LIST, CMARK_ORDERED_LIST } cmark_list_type; @@ -23,6 +59,45 @@ typedef enum { typedef struct cmark_node cmark_node; typedef struct cmark_doc_parser cmark_doc_parser; +CMARK_EXPORT cmark_node_type +cmark_node_get_type(cmark_node *node); + +// Tree traversal + +CMARK_EXPORT cmark_node* +cmark_node_next(cmark_node *node); + +CMARK_EXPORT cmark_node* +cmark_node_previous(cmark_node *node); + +CMARK_EXPORT cmark_node* +cmark_node_parent(cmark_node *node); + +CMARK_EXPORT cmark_node* +cmark_node_first_child(cmark_node *node); + +CMARK_EXPORT cmark_node* +cmark_node_last_child(cmark_node *node); + +// Tree manipulation + +CMARK_EXPORT void +cmark_node_unlink(cmark_node *node); + +CMARK_EXPORT int +cmark_node_insert_before(cmark_node *node, cmark_node *sibling); + +CMARK_EXPORT int +cmark_node_insert_before(cmark_node *node, cmark_node *sibling); + +CMARK_EXPORT int +cmark_node_prepend_child(cmark_node *node, cmark_node *child); + +CMARK_EXPORT int +cmark_node_append_child(cmark_node *node, cmark_node *child); + +// Parser + CMARK_EXPORT cmark_doc_parser *cmark_new_doc_parser(); @@ -41,6 +116,8 @@ cmark_node *cmark_parse_document(const unsigned char *buffer, size_t len); CMARK_EXPORT cmark_node *cmark_parse_file(FILE *f); +// Renderer + CMARK_EXPORT void cmark_debug_print(cmark_node *root); @@ -54,6 +131,28 @@ CMARK_EXPORT void cmark_free_nodes(cmark_node *e); #ifndef CMARK_NO_SHORT_NAMES + #define NODE_DOCUMENT CMARK_NODE_DOCUMENT + #define NODE_BQUOTE CMARK_NODE_BQUOTE + #define NODE_LIST CMARK_NODE_LIST + #define NODE_LIST_ITEM CMARK_NODE_LIST_ITEM + #define NODE_FENCED_CODE CMARK_NODE_FENCED_CODE + #define NODE_INDENTED_CODE CMARK_NODE_INDENTED_CODE + #define NODE_HTML CMARK_NODE_HTML + #define NODE_PARAGRAPH CMARK_NODE_PARAGRAPH + #define NODE_ATX_HEADER CMARK_NODE_ATX_HEADER + #define NODE_SETEXT_HEADER CMARK_NODE_SETEXT_HEADER + #define NODE_HRULE CMARK_NODE_HRULE + #define NODE_REFERENCE_DEF CMARK_NODE_REFERENCE_DEF + #define NODE_STRING CMARK_NODE_STRING + #define NODE_SOFTBREAK CMARK_NODE_SOFTBREAK + #define NODE_LINEBREAK CMARK_NODE_LINEBREAK + #define NODE_INLINE_CODE CMARK_NODE_INLINE_CODE + #define NODE_INLINE_HTML CMARK_NODE_INLINE_HTML + #define NODE_EMPH CMARK_NODE_EMPH + #define NODE_STRONG CMARK_NODE_STRONG + #define NODE_LINK CMARK_NODE_LINK + #define NODE_IMAGE CMARK_NODE_IMAGE + #define NODE_LINK_LABEL CMARK_NODE_LINK_LABEL #define BULLET_LIST CMARK_BULLET_LIST #define ORDERED_LIST CMARK_ORDERED_LIST #define PERIOD_DELIM CMARK_PERIOD_DELIM @@ -9,42 +9,6 @@ extern "C" { #include "buffer.h" #include "chunk.h" -typedef enum { - // Block - CMARK_NODE_DOCUMENT, - CMARK_NODE_BQUOTE, - CMARK_NODE_LIST, - CMARK_NODE_LIST_ITEM, - CMARK_NODE_FENCED_CODE, - CMARK_NODE_INDENTED_CODE, - CMARK_NODE_HTML, - CMARK_NODE_PARAGRAPH, - CMARK_NODE_ATX_HEADER, - CMARK_NODE_SETEXT_HEADER, - CMARK_NODE_HRULE, - CMARK_NODE_REFERENCE_DEF, - - CMARK_NODE_FIRST_BLOCK = CMARK_NODE_DOCUMENT, - CMARK_NODE_LAST_BLOCK = CMARK_NODE_REFERENCE_DEF, - - // Inline - CMARK_NODE_STRING, - CMARK_NODE_SOFTBREAK, - CMARK_NODE_LINEBREAK, - CMARK_NODE_INLINE_CODE, - CMARK_NODE_INLINE_HTML, - CMARK_NODE_EMPH, - CMARK_NODE_STRONG, - CMARK_NODE_LINK, - CMARK_NODE_IMAGE, - - CMARK_NODE_FIRST_INLINE = CMARK_NODE_STRING, - CMARK_NODE_LAST_INLINE = CMARK_NODE_IMAGE, - - // Other - CMARK_NODE_LINK_LABEL -} cmark_node_type; - typedef struct { cmark_list_type list_type; int marker_offset; @@ -98,68 +62,6 @@ struct cmark_node { } as; }; -CMARK_EXPORT cmark_node_type -cmark_node_get_type(cmark_node *node); - -// Tree traversal - -CMARK_EXPORT cmark_node* -cmark_node_next(cmark_node *node); - -CMARK_EXPORT cmark_node* -cmark_node_previous(cmark_node *node); - -CMARK_EXPORT cmark_node* -cmark_node_parent(cmark_node *node); - -CMARK_EXPORT cmark_node* -cmark_node_first_child(cmark_node *node); - -CMARK_EXPORT cmark_node* -cmark_node_last_child(cmark_node *node); - -// Tree manipulation - -CMARK_EXPORT void -cmark_node_unlink(cmark_node *node); - -CMARK_EXPORT int -cmark_node_insert_before(cmark_node *node, cmark_node *sibling); - -CMARK_EXPORT int -cmark_node_insert_before(cmark_node *node, cmark_node *sibling); - -CMARK_EXPORT int -cmark_node_prepend_child(cmark_node *node, cmark_node *child); - -CMARK_EXPORT int -cmark_node_append_child(cmark_node *node, cmark_node *child); - -#define NODE_DOCUMENT CMARK_NODE_DOCUMENT -#define NODE_BQUOTE CMARK_NODE_BQUOTE -#define NODE_LIST CMARK_NODE_LIST -#define NODE_LIST_ITEM CMARK_NODE_LIST_ITEM -#define NODE_FENCED_CODE CMARK_NODE_FENCED_CODE -#define NODE_INDENTED_CODE CMARK_NODE_INDENTED_CODE -#define NODE_HTML CMARK_NODE_HTML -#define NODE_PARAGRAPH CMARK_NODE_PARAGRAPH -#define NODE_ATX_HEADER CMARK_NODE_ATX_HEADER -#define NODE_SETEXT_HEADER CMARK_NODE_SETEXT_HEADER -#define NODE_HRULE CMARK_NODE_HRULE -#define NODE_REFERENCE_DEF CMARK_NODE_REFERENCE_DEF - -#define NODE_STRING CMARK_NODE_STRING -#define NODE_SOFTBREAK CMARK_NODE_SOFTBREAK -#define NODE_LINEBREAK CMARK_NODE_LINEBREAK -#define NODE_INLINE_CODE CMARK_NODE_INLINE_CODE -#define NODE_INLINE_HTML CMARK_NODE_INLINE_HTML -#define NODE_EMPH CMARK_NODE_EMPH -#define NODE_STRONG CMARK_NODE_STRONG -#define NODE_LINK CMARK_NODE_LINK -#define NODE_IMAGE CMARK_NODE_IMAGE - -#define NODE_LINK_LABEL CMARK_NODE_LINK_LABEL - #ifdef __cplusplus } #endif |