Test tracking token end positions when the token spans a newline - #27
This commit is contained in:
parent
87d6d29d60
commit
eae2e17f41
@ -1087,12 +1087,12 @@ ast;
|
|||||||
|
|
||||||
token a;
|
token a;
|
||||||
token bb;
|
token bb;
|
||||||
token ccc;
|
token c /c(.|\\n)*c/;
|
||||||
drop /\\s+/;
|
drop /\\s+/;
|
||||||
Start -> T T T;
|
Start -> T T T;
|
||||||
T -> a;
|
T -> a;
|
||||||
T -> bb;
|
T -> bb;
|
||||||
T -> ccc;
|
T -> c;
|
||||||
EOF
|
EOF
|
||||||
run_propane(language: language)
|
run_propane(language: language)
|
||||||
compile("spec/test_ast_token_positions.#{language}", language: language)
|
compile("spec/test_ast_token_positions.#{language}", language: language)
|
||||||
|
@ -23,7 +23,7 @@ int main()
|
|||||||
assert_eq(0, start->pT3->pToken->end_position.row);
|
assert_eq(0, start->pT3->pToken->end_position.row);
|
||||||
assert_eq(5, start->pT3->pToken->end_position.col);
|
assert_eq(5, start->pT3->pToken->end_position.col);
|
||||||
|
|
||||||
input = "\n\n bb\nccc\n\n a";
|
input = "\n\n bb\nc\ncc\n\n a";
|
||||||
p_context_init(&context, (uint8_t const *)input, strlen(input));
|
p_context_init(&context, (uint8_t const *)input, strlen(input));
|
||||||
assert(p_parse(&context) == P_SUCCESS);
|
assert(p_parse(&context) == P_SUCCESS);
|
||||||
start = p_result(&context);
|
start = p_result(&context);
|
||||||
@ -33,11 +33,11 @@ int main()
|
|||||||
assert_eq(3, start->pT1->pToken->end_position.col);
|
assert_eq(3, start->pT1->pToken->end_position.col);
|
||||||
assert_eq(3, start->pT2->pToken->position.row);
|
assert_eq(3, start->pT2->pToken->position.row);
|
||||||
assert_eq(0, start->pT2->pToken->position.col);
|
assert_eq(0, start->pT2->pToken->position.col);
|
||||||
assert_eq(3, start->pT2->pToken->end_position.row);
|
assert_eq(4, start->pT2->pToken->end_position.row);
|
||||||
assert_eq(2, start->pT2->pToken->end_position.col);
|
assert_eq(1, start->pT2->pToken->end_position.col);
|
||||||
assert_eq(5, start->pT3->pToken->position.row);
|
assert_eq(6, start->pT3->pToken->position.row);
|
||||||
assert_eq(5, start->pT3->pToken->position.col);
|
assert_eq(5, start->pT3->pToken->position.col);
|
||||||
assert_eq(5, start->pT3->pToken->end_position.row);
|
assert_eq(6, start->pT3->pToken->end_position.row);
|
||||||
assert_eq(5, start->pT3->pToken->end_position.col);
|
assert_eq(5, start->pT3->pToken->end_position.col);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -27,7 +27,7 @@ unittest
|
|||||||
assert_eq(0, start.pT3.pToken.end_position.row);
|
assert_eq(0, start.pT3.pToken.end_position.row);
|
||||||
assert_eq(5, start.pT3.pToken.end_position.col);
|
assert_eq(5, start.pT3.pToken.end_position.col);
|
||||||
|
|
||||||
input = "\n\n bb\nccc\n\n a";
|
input = "\n\n bb\nc\ncc\n\n a";
|
||||||
p_context_init(&context, input);
|
p_context_init(&context, input);
|
||||||
assert(p_parse(&context) == P_SUCCESS);
|
assert(p_parse(&context) == P_SUCCESS);
|
||||||
start = p_result(&context);
|
start = p_result(&context);
|
||||||
@ -37,10 +37,10 @@ unittest
|
|||||||
assert_eq(3, start.pT1.pToken.end_position.col);
|
assert_eq(3, start.pT1.pToken.end_position.col);
|
||||||
assert_eq(3, start.pT2.pToken.position.row);
|
assert_eq(3, start.pT2.pToken.position.row);
|
||||||
assert_eq(0, start.pT2.pToken.position.col);
|
assert_eq(0, start.pT2.pToken.position.col);
|
||||||
assert_eq(3, start.pT2.pToken.end_position.row);
|
assert_eq(4, start.pT2.pToken.end_position.row);
|
||||||
assert_eq(2, start.pT2.pToken.end_position.col);
|
assert_eq(1, start.pT2.pToken.end_position.col);
|
||||||
assert_eq(5, start.pT3.pToken.position.row);
|
assert_eq(6, start.pT3.pToken.position.row);
|
||||||
assert_eq(5, start.pT3.pToken.position.col);
|
assert_eq(5, start.pT3.pToken.position.col);
|
||||||
assert_eq(5, start.pT3.pToken.end_position.row);
|
assert_eq(6, start.pT3.pToken.end_position.row);
|
||||||
assert_eq(5, start.pT3.pToken.end_position.col);
|
assert_eq(5, start.pT3.pToken.end_position.col);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user