From e4f2fffe50204794524effe6716e5ceb5914d7e1 Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Sat, 28 Aug 2021 09:47:01 -0400 Subject: [PATCH] add Item#closed_items --- lib/imbecile/parser/item.rb | 10 ++++++++++ lib/imbecile/parser/item_set.rb | 3 +-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/lib/imbecile/parser/item.rb b/lib/imbecile/parser/item.rb index 81e8c8a..0ab3c6f 100644 --- a/lib/imbecile/parser/item.rb +++ b/lib/imbecile/parser/item.rb @@ -27,6 +27,16 @@ class Imbecile self == other end + def closed_items + if @rule.components[@position].is_a?(Array) + @rule.components[@position].map do |rule| + Item.new(rule, 0) + end + else + [] + end + end + end end diff --git a/lib/imbecile/parser/item_set.rb b/lib/imbecile/parser/item_set.rb index bb5f232..b77d4dc 100644 --- a/lib/imbecile/parser/item_set.rb +++ b/lib/imbecile/parser/item_set.rb @@ -13,8 +13,7 @@ class Imbecile this_eval_items = eval_items eval_items = Set.new this_eval_items.each do |item| - if item.next_component.is_a?(Rule) - end + eval_items += item.closed_items end @items += eval_items end