44 lines
635 B
C
44 lines
635 B
C
|
#include <stdlib.h>
|
||
|
|
||
|
#include "token.h"
|
||
|
|
||
|
#ifndef NODE_H
|
||
|
#define NODE_H
|
||
|
|
||
|
typedef enum {
|
||
|
NT_Header1,
|
||
|
NT_Header2,
|
||
|
NT_Header3,
|
||
|
NT_Header4,
|
||
|
NT_Paragraph,
|
||
|
NT_UnorderedList,
|
||
|
NT_OrderedList,
|
||
|
NT_InlineCode,
|
||
|
NT_BlockCode,
|
||
|
NT_BlockQuote,
|
||
|
NT_Bold,
|
||
|
NT_Underline,
|
||
|
} NodeType;
|
||
|
|
||
|
struct NodeList;
|
||
|
|
||
|
typedef struct Node {
|
||
|
NodeType type;
|
||
|
struct NodeList* children;
|
||
|
} Node;
|
||
|
|
||
|
typedef struct NodeList {
|
||
|
struct Node* node;
|
||
|
struct Node* next;
|
||
|
} NodeList;
|
||
|
|
||
|
typedef struct {
|
||
|
NodeType type;
|
||
|
struct Node* next;
|
||
|
char* rawText;
|
||
|
} HeaderNode;
|
||
|
|
||
|
NodeList* ParseNodes(TokenList* list);
|
||
|
|
||
|
#endif
|