#include "testparser.h" #include #include #include "testutils.h" int main() { char const * input = "abbccc"; p_context_t * context; context = p_context_new((uint8_t const *)input, strlen(input)); assert(p_parse(context) == P_SUCCESS); Start * start = p_result(context); assert_eq(1, start->pT1->pToken->position.row); assert_eq(1, start->pT1->pToken->position.col); assert_eq(1, start->pT1->pToken->end_position.row); assert_eq(1, start->pT1->pToken->end_position.col); assert_eq(1, start->pT1->position.row); assert_eq(1, start->pT1->position.col); assert_eq(1, start->pT1->end_position.row); assert_eq(1, start->pT1->end_position.col); assert_eq(1, start->pT2->pToken->position.row); assert_eq(2, start->pT2->pToken->position.col); assert_eq(1, start->pT2->pToken->end_position.row); assert_eq(3, start->pT2->pToken->end_position.col); assert_eq(1, start->pT2->position.row); assert_eq(2, start->pT2->position.col); assert_eq(1, start->pT2->end_position.row); assert_eq(3, start->pT2->end_position.col); assert_eq(1, start->pT3->pToken->position.row); assert_eq(4, start->pT3->pToken->position.col); assert_eq(1, start->pT3->pToken->end_position.row); assert_eq(6, start->pT3->pToken->end_position.col); assert_eq(1, start->pT3->position.row); assert_eq(4, start->pT3->position.col); assert_eq(1, start->pT3->end_position.row); assert_eq(6, start->pT3->end_position.col); assert_eq(1, start->position.row); assert_eq(1, start->position.col); assert_eq(1, start->end_position.row); assert_eq(6, start->end_position.col); p_tree_delete(start); p_context_delete(context); input = "\n\n bb\nc\ncc\n\n a"; context = p_context_new((uint8_t const *)input, strlen(input)); assert(p_parse(context) == P_SUCCESS); start = p_result(context); assert_eq(3, start->pT1->pToken->position.row); assert_eq(3, start->pT1->pToken->position.col); assert_eq(3, start->pT1->pToken->end_position.row); assert_eq(4, start->pT1->pToken->end_position.col); assert_eq(3, start->pT1->position.row); assert_eq(3, start->pT1->position.col); assert_eq(3, start->pT1->end_position.row); assert_eq(4, start->pT1->end_position.col); assert_eq(4, start->pT2->pToken->position.row); assert_eq(1, start->pT2->pToken->position.col); assert_eq(5, start->pT2->pToken->end_position.row); assert_eq(2, start->pT2->pToken->end_position.col); assert_eq(4, start->pT2->position.row); assert_eq(1, start->pT2->position.col); assert_eq(5, start->pT2->end_position.row); assert_eq(2, start->pT2->end_position.col); assert_eq(7, start->pT3->pToken->position.row); assert_eq(6, start->pT3->pToken->position.col); assert_eq(7, start->pT3->pToken->end_position.row); assert_eq(6, start->pT3->pToken->end_position.col); assert_eq(7, start->pT3->position.row); assert_eq(6, start->pT3->position.col); assert_eq(7, start->pT3->end_position.row); assert_eq(6, start->pT3->end_position.col); assert_eq(3, start->position.row); assert_eq(3, start->position.col); assert_eq(7, start->end_position.row); assert_eq(6, start->end_position.col); p_tree_delete(start); p_context_delete(context); return 0; }