diff --git a/src/compiler/build_tables/close_item_set.cpp b/src/compiler/build_tables/item_set_closure.cpp similarity index 67% rename from src/compiler/build_tables/close_item_set.cpp rename to src/compiler/build_tables/item_set_closure.cpp index 70fd31fe..c05ed6b9 100644 --- a/src/compiler/build_tables/close_item_set.cpp +++ b/src/compiler/build_tables/item_set_closure.cpp @@ -1,4 +1,4 @@ -#include "close_item_set.h" +#include "item_set_closure.h" #include "./next_symbols.h" #include "grammar.h" #include "item.h" @@ -22,14 +22,11 @@ namespace tree_sitter { } } - static vector closure_in_grammar(const Item &item, const Grammar &grammar) { - vector result; - add_item(result, item, grammar); - return result; - } - - ItemSet close_item_set(const ItemSet &item_set, const Grammar &grammar) { - return ItemSet(closure_in_grammar(*item_set.begin(), grammar)); + ItemSet item_set_closure(const ItemSet &item_set, const Grammar &grammar) { + vector items; + for (Item item : item_set) + add_item(items, item, grammar); + return ItemSet(items); } } } \ No newline at end of file diff --git a/src/compiler/build_tables/close_item_set.h b/src/compiler/build_tables/item_set_closure.h similarity index 70% rename from src/compiler/build_tables/close_item_set.h rename to src/compiler/build_tables/item_set_closure.h index 352d33d1..350e06f4 100644 --- a/src/compiler/build_tables/close_item_set.h +++ b/src/compiler/build_tables/item_set_closure.h @@ -7,7 +7,7 @@ namespace tree_sitter { class Grammar; namespace build_tables { - ItemSet close_item_set(const ItemSet &item_set, const Grammar &grammar); + ItemSet item_set_closure(const ItemSet &item_set, const Grammar &grammar); } } diff --git a/src/compiler/build_tables/item_set_transitions.cpp b/src/compiler/build_tables/item_set_transitions.cpp index a0a39131..17a8a6a6 100644 --- a/src/compiler/build_tables/item_set_transitions.cpp +++ b/src/compiler/build_tables/item_set_transitions.cpp @@ -1,5 +1,5 @@ #include "item_set_transitions.h" -#include "close_item_set.h" +#include "item_set_closure.h" #include "rule_transitions.h" using std::dynamic_pointer_cast; @@ -19,7 +19,7 @@ namespace tree_sitter { for (Item item : item_set) { for (auto transition : item_transitions(item)) { auto rule = dynamic_pointer_cast(transition.first); - auto new_item_set = make_shared(close_item_set(ItemSet({ *transition.second }), grammar)); + auto new_item_set = make_shared(item_set_closure(ItemSet({ *transition.second }), grammar)); if (rule.get()) result.add(rule, new_item_set); } } diff --git a/src/compiler/build_tables/perform.cpp b/src/compiler/build_tables/perform.cpp index 541b8c8c..00e8f4f1 100644 --- a/src/compiler/build_tables/perform.cpp +++ b/src/compiler/build_tables/perform.cpp @@ -1,6 +1,6 @@ #include "./perform.h" #include "item_set.h" -#include "close_item_set.h" +#include "item_set_closure.h" #include "next_symbols.h" #include "item_set_transitions.h" #include "rules.h" @@ -111,7 +111,7 @@ namespace tree_sitter { pair build() { auto item = Item(ParseTable::START, rules::sym(grammar.start_rule_name), 0); - auto item_set = close_item_set(ItemSet({ item }), grammar); + auto item_set = item_set_closure(ItemSet({ item }), grammar); add_parse_state(item_set); return pair(parse_table, lex_table); } diff --git a/tree_sitter.xcodeproj/project.pbxproj b/tree_sitter.xcodeproj/project.pbxproj index f145eafc..4e504d37 100644 --- a/tree_sitter.xcodeproj/project.pbxproj +++ b/tree_sitter.xcodeproj/project.pbxproj @@ -32,7 +32,7 @@ 12EDCFB418820519005A7A07 /* compile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 12EDCFAC18820181005A7A07 /* compile.cpp */; }; 12EDCFBC188205BF005A7A07 /* rule_transitions_spec.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 12EDCFB6188205BA005A7A07 /* rule_transitions_spec.cpp */; }; 12EDCFBD188205BF005A7A07 /* perform_spec.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 12EDCFB7188205BA005A7A07 /* perform_spec.cpp */; }; - 12EDCFC018820880005A7A07 /* close_item_set.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 12EDCFBE18820880005A7A07 /* close_item_set.cpp */; }; + 12EDCFC018820880005A7A07 /* item_set_closure.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 12EDCFBE18820880005A7A07 /* item_set_closure.cpp */; }; 12EDCFC318820A70005A7A07 /* item_set_transitions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 12EDCFC118820A70005A7A07 /* item_set_transitions.cpp */; }; 12EDCFC61882153D005A7A07 /* next_symbols.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 12EDCFC41882153D005A7A07 /* next_symbols.cpp */; }; 12F9A64E182DD5FD00FAF50C /* spec_helper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 12F9A64C182DD5FD00FAF50C /* spec_helper.cpp */; }; @@ -127,8 +127,8 @@ 12EDCFAD18820181005A7A07 /* compile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = compile.h; sourceTree = ""; }; 12EDCFB6188205BA005A7A07 /* rule_transitions_spec.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = rule_transitions_spec.cpp; sourceTree = ""; }; 12EDCFB7188205BA005A7A07 /* perform_spec.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = perform_spec.cpp; sourceTree = ""; }; - 12EDCFBE18820880005A7A07 /* close_item_set.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = close_item_set.cpp; sourceTree = ""; }; - 12EDCFBF18820880005A7A07 /* close_item_set.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = close_item_set.h; sourceTree = ""; }; + 12EDCFBE18820880005A7A07 /* item_set_closure.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = item_set_closure.cpp; sourceTree = ""; }; + 12EDCFBF18820880005A7A07 /* item_set_closure.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = item_set_closure.h; sourceTree = ""; }; 12EDCFC118820A70005A7A07 /* item_set_transitions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = item_set_transitions.cpp; sourceTree = ""; }; 12EDCFC218820A70005A7A07 /* item_set_transitions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = item_set_transitions.h; sourceTree = ""; }; 12EDCFC41882153D005A7A07 /* next_symbols.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = next_symbols.cpp; sourceTree = ""; }; @@ -205,12 +205,12 @@ 12130618182C84B700FCF928 /* build_tables */ = { isa = PBXGroup; children = ( - 12EDCFBE18820880005A7A07 /* close_item_set.cpp */, - 12EDCFBF18820880005A7A07 /* close_item_set.h */, 12EDCFA218820137005A7A07 /* item.cpp */, 12EDCFA318820137005A7A07 /* item.h */, 12EDCFA018820137005A7A07 /* item_set.cpp */, 12EDCFA118820137005A7A07 /* item_set.h */, + 12EDCFBE18820880005A7A07 /* item_set_closure.cpp */, + 12EDCFBF18820880005A7A07 /* item_set_closure.h */, 12EDCFC118820A70005A7A07 /* item_set_transitions.cpp */, 12EDCFC218820A70005A7A07 /* item_set_transitions.h */, 12EDCFC41882153D005A7A07 /* next_symbols.cpp */, @@ -470,7 +470,7 @@ 12EDCFB31882039A005A7A07 /* rule_transitions.cpp in Sources */, 12FD40D9185FEEDF0041A84E /* pattern_spec.cpp in Sources */, 12130617182C3D2900FCF928 /* string.cpp in Sources */, - 12EDCFC018820880005A7A07 /* close_item_set.cpp in Sources */, + 12EDCFC018820880005A7A07 /* item_set_closure.cpp in Sources */, 12EDCFBD188205BF005A7A07 /* perform_spec.cpp in Sources */, 12EDCFC61882153D005A7A07 /* next_symbols.cpp in Sources */, 12130611182C3A1100FCF928 /* blank.cpp in Sources */,