Get tests passing w/ new alias API

This commit is contained in:
Max Brunsfeld 2017-08-01 13:28:18 -07:00
parent cb5fe80348
commit 09f4796f6b
18 changed files with 99 additions and 94 deletions

View file

@ -6,14 +6,15 @@ START_TEST
describe("Language", []() {
describe("symbol_name(TSSymbol symbol)", [&]() {
it("returns the correct name for renamed nodes", [&]() {
it("returns the correct name for aliased nodes", [&]() {
TSCompileResult compile_result = ts_compile_grammar(R"JSON({
"name": "renamed_rules",
"name": "aliased_rules",
"rules": {
"a": {
"type": "RENAME",
"type": "ALIAS",
"value": "c",
"named": true,
"content": {
"type": "SYMBOL",
"name": "b"
@ -28,7 +29,7 @@ describe("Language", []() {
})JSON");
TSDocument *document = ts_document_new();
const TSLanguage *language = load_test_language("renamed_rules", compile_result);
const TSLanguage *language = load_test_language("aliased_rules", compile_result);
ts_document_set_language(document, language);
ts_document_set_input_string(document, "b");
ts_document_parse(document);
@ -37,13 +38,13 @@ describe("Language", []() {
char *string = ts_node_string(root_node, document);
AssertThat(string, Equals("(a (c))"));
TSNode renamed_node = ts_node_child(root_node, 0);
AssertThat(ts_node_type(renamed_node, document), Equals("c"));
TSNode aliased_node = ts_node_child(root_node, 0);
AssertThat(ts_node_type(aliased_node, document), Equals("c"));
TSSymbol renamed_symbol = ts_node_symbol(renamed_node);
AssertThat(ts_language_symbol_count(language), IsGreaterThan(renamed_symbol));
AssertThat(ts_language_symbol_name(language, renamed_symbol), Equals("c"));
AssertThat(ts_language_symbol_type(language, renamed_symbol), Equals(TSSymbolTypeRegular));
TSSymbol aliased_symbol = ts_node_symbol(aliased_node);
AssertThat(ts_language_symbol_count(language), IsGreaterThan(aliased_symbol));
AssertThat(ts_language_symbol_name(language, aliased_symbol), Equals("c"));
AssertThat(ts_language_symbol_type(language, aliased_symbol), Equals(TSSymbolTypeRegular));
ts_free(string);
ts_document_free(document);