39 lines
914 B
C
39 lines
914 B
C
|
#include "test.h"
|
||
|
|
||
|
#include "mrk/lexer.h"
|
||
|
#include "mrk/parser.h"
|
||
|
|
||
|
#define LEXER_INIT() \
|
||
|
mrk_lexer *lxr; \
|
||
|
TEST_CHECK(mrk_lexer_init(&lxr) == mrk_err_ok)
|
||
|
|
||
|
#define PARSER_INIT() \
|
||
|
mrk_parser *psr; \
|
||
|
TEST_CHECK(mrk_parser_init(&psr) == mrk_err_ok)
|
||
|
|
||
|
#define PARSER_OPEN(buf) \
|
||
|
mrk_lexer *lxr; \
|
||
|
TEST_CHECK(mrk_lexer_init(&lxr) == mrk_err_ok); \
|
||
|
mrk_parser *psr; \
|
||
|
TEST_CHECK(mrk_parser_init(&psr) == mrk_err_ok); \
|
||
|
mrk_lexer_open(lxr, buf, 0); \
|
||
|
mrk_parser_open(psr, lxr)
|
||
|
|
||
|
|
||
|
void test_parse_header() {
|
||
|
const char *buf = "### hello world";
|
||
|
PARSER_OPEN(buf);
|
||
|
|
||
|
mrk_ast_node *root;
|
||
|
TEST_CHECK(mrk_parser_parse(&root, psr) == mrk_err_ok);
|
||
|
|
||
|
mrk_ast_node *header = root->children.arr[0];
|
||
|
TEST_CHECK(header->type == mrk_ast_node_type_header);
|
||
|
TEST_CHECK(header->children.arr[0]->type == mrk_ast_node_type_text);
|
||
|
}
|
||
|
|
||
|
TEST_LIST = {
|
||
|
{ "parser header", test_parse_header },
|
||
|
{ NULL, NULL }
|
||
|
};
|