diff options
| author | Rafael G. Martins <rafael@rafaelmartins.eng.br> | 2016-06-23 00:46:06 +0200 | 
|---|---|---|
| committer | Rafael G. Martins <rafael@rafaelmartins.eng.br> | 2016-07-16 01:58:49 +0200 | 
| commit | 5ce910e4883f44be79055d0bf71f7703097f4026 (patch) | |
| tree | f948052f0b25bad8b0248dbb279fc837a4445a3d | |
| parent | f40bc3931a7194f7361f9cbe35d0f42a1ce444be (diff) | |
| download | blogc-5ce910e4883f44be79055d0bf71f7703097f4026.tar.gz blogc-5ce910e4883f44be79055d0bf71f7703097f4026.tar.bz2 blogc-5ce910e4883f44be79055d0bf71f7703097f4026.zip  | |
content-parser: added basic data structures for ast
| -rw-r--r-- | src/content-parser.h | 41 | 
1 files changed, 41 insertions, 0 deletions
diff --git a/src/content-parser.h b/src/content-parser.h index 37e38d7..a0e403c 100644 --- a/src/content-parser.h +++ b/src/content-parser.h @@ -12,6 +12,47 @@  #include <stddef.h>  #include <stdbool.h> +#include "utils.h" + +typedef enum { +    BLOGC_CONTENT_BLOCK = 1, +    BLOGC_CONTENT_INLINE, +} blogc_content_node_type_t; + +typedef enum { +    BLOGC_CONTENT_BLOCK_HEADER = 1, +    BLOGC_CONTENT_BLOCK_RAW, +    BLOGC_CONTENT_BLOCK_BLOCKQUOTE, +    BLOGC_CONTENT_BLOCK_CODE, +    BLOGC_CONTENT_BLOCK_HORIZONTAL_RULE, +    BLOGC_CONTENT_BLOCK_UNORDERED_LIST, +    BLOGC_CONTENT_BLOCK_ORDERED_LIST, +    BLOGC_CONTENT_BLOCK_LIST_ITEM, +    BLOGC_CONTENT_BLOCK_PARAGRAPH, +} blogc_content_block_type_t; + +typedef enum { +    BLOGC_CONTENT_INLINE_LINK = 1, +    BLOGC_CONTENT_INLINE_IMAGE, +    BLOGC_CONTENT_INLINE_BOLD, +    BLOGC_CONTENT_INLINE_ITALIC, +    BLOGC_CONTENT_INLINE_CODE, +    BLOGC_CONTENT_INLINE_BREAK_LINE, +} blogc_content_inline_type_t; + +typedef struct _blogc_content_node_t { +    blogc_content_node_type_t node_type; +    union { +        blogc_content_block_type_t block_type; +        blogc_content_inline_type_t inline_type; +    } type; +    union { +        struct _blogc_content_node_t *block; +        char *content; +    } child; +    sb_trie_t *parameters; +} blogc_content_node_t; +  char* blogc_slugify(const char *str);  char* blogc_htmlentities(const char *str);  char* blogc_fix_description(const char *paragraph);  | 
