Compare commits
No commits in common. "92c63092a145797c28be466d1071558d51dd78b8" and "2bea87b39ac3b3faa8ffdc9023dea2ea54c1b00b" have entirely different histories.
92c63092a1
...
2bea87b39a
@ -136,6 +136,5 @@ parse_result_t parse_statement(tokenlist_entry_t *current) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
parse_result_t parse(tokenlist_entry_t *current) {
|
parse_result_t parse(tokenlist_entry_t *current) {
|
||||||
current = tokenlist_skip_trivia(current);
|
|
||||||
return parse_many(current, NODE_PROGRAM, true, parse_statement);
|
return parse_many(current, NODE_PROGRAM, true, parse_statement);
|
||||||
}
|
}
|
||||||
|
@ -1,5 +0,0 @@
|
|||||||
; sample program with trivia on the head of the tokenlist
|
|
||||||
|
|
||||||
_start:
|
|
||||||
xor rax, rax
|
|
||||||
call exit
|
|
@ -2,11 +2,9 @@
|
|||||||
|
|
||||||
extern MunitTest ast_tests[];
|
extern MunitTest ast_tests[];
|
||||||
extern MunitTest lexer_tests[];
|
extern MunitTest lexer_tests[];
|
||||||
extern MunitTest regression_tests[];
|
|
||||||
|
|
||||||
int main(int argc, char *argv[MUNIT_ARRAY_PARAM(argc + 1)]) {
|
int main(int argc, char *argv[MUNIT_ARRAY_PARAM(argc + 1)]) {
|
||||||
MunitSuite suites[] = {
|
MunitSuite suites[] = {
|
||||||
{"/regression", regression_tests, nullptr, 1, MUNIT_SUITE_OPTION_NONE},
|
|
||||||
{"/ast", ast_tests, nullptr, 1, MUNIT_SUITE_OPTION_NONE},
|
{"/ast", ast_tests, nullptr, 1, MUNIT_SUITE_OPTION_NONE},
|
||||||
{"/lexer", lexer_tests, nullptr, 1, MUNIT_SUITE_OPTION_NONE},
|
{"/lexer", lexer_tests, nullptr, 1, MUNIT_SUITE_OPTION_NONE},
|
||||||
{nullptr, nullptr, nullptr, 0, MUNIT_SUITE_OPTION_NONE},
|
{nullptr, nullptr, nullptr, 0, MUNIT_SUITE_OPTION_NONE},
|
||||||
|
@ -1,31 +0,0 @@
|
|||||||
#include "../src/ast.h"
|
|
||||||
#include "../src/parser/parser.h"
|
|
||||||
#include "munit.h"
|
|
||||||
|
|
||||||
MunitResult test_regression_trivia_head(const MunitParameter params[], void *data) {
|
|
||||||
(void)params;
|
|
||||||
(void)data;
|
|
||||||
|
|
||||||
lexer_t *lex = &(lexer_t){};
|
|
||||||
error_t *err = lexer_open(lex, "tests/input/regression/test_trivia_head.asm");
|
|
||||||
munit_assert_null(err);
|
|
||||||
|
|
||||||
tokenlist_t *list;
|
|
||||||
err = tokenlist_alloc(&list);
|
|
||||||
munit_assert_null(err);
|
|
||||||
|
|
||||||
err = tokenlist_fill(list, lex);
|
|
||||||
munit_assert_null(err);
|
|
||||||
|
|
||||||
parse_result_t result = parse(list->head);
|
|
||||||
munit_assert_null(result.err);
|
|
||||||
munit_assert_null(result.next);
|
|
||||||
|
|
||||||
ast_node_free(result.node);
|
|
||||||
tokenlist_free(list);
|
|
||||||
}
|
|
||||||
|
|
||||||
MunitTest regression_tests[] = {
|
|
||||||
{"/trivia_head", test_regression_trivia_head, nullptr, nullptr, MUNIT_TEST_OPTION_NONE, nullptr},
|
|
||||||
{nullptr, nullptr, nullptr, nullptr, MUNIT_TEST_OPTION_NONE, nullptr}
|
|
||||||
};
|
|
Loading…
x
Reference in New Issue
Block a user