feat(lexer): matching more things

This commit is contained in:
Jef Roosens 2024-03-04 14:50:00 +01:00
parent f003e3555b
commit f6e034097d
Signed by: Jef Roosens
GPG key ID: B75D4F293C7052DB
4 changed files with 111 additions and 29 deletions

View file

@ -14,14 +14,41 @@ void test_lexer_header() {
mrk_token t;
TEST_CHECK(mrk_lexer_next(&t, lxr) == mrk_lexer_err_ok);
TEST_CHECK(t.type == mrk_token_type_header);
TEST_CHECK(t.type == mrk_token_type_pounds);
TEST_CHECK_(t.start == 0, "t.start == %lu", t.start);
TEST_CHECK(t.end == 4);
mrk_lexer_free(lxr);
}
void test_lexer_line_break() {
LEXER_INIT();
const char *buf = " \n";
mrk_lexer_open(lxr, buf, 0);
mrk_token t;
TEST_CHECK(mrk_lexer_next(&t, lxr) == mrk_lexer_err_ok);
TEST_CHECK(t.type == mrk_token_type_line_break);
TEST_CHECK(mrk_lexer_done(lxr));
const char *buf2 = " ";
mrk_lexer_open(lxr, buf2, 0);
TEST_CHECK(mrk_lexer_next(&t, lxr) == mrk_lexer_err_ok);
TEST_CHECK(t.type == mrk_token_type_space);
TEST_CHECK(mrk_lexer_next(&t, lxr) == mrk_lexer_err_ok);
TEST_CHECK(t.type == mrk_token_type_space);
TEST_CHECK(mrk_lexer_done(lxr));
mrk_lexer_free(lxr);
}
TEST_LIST = {
{ "lexer header", test_lexer_header },
{ "lexer line break", test_lexer_line_break},
{ NULL, NULL }
};