summaryrefslogtreecommitdiff
path: root/prototype/parse.rb
diff options
context:
space:
mode:
Diffstat (limited to 'prototype/parse.rb')
-rw-r--r--prototype/parse.rb10
1 files changed, 3 insertions, 7 deletions
diff --git a/prototype/parse.rb b/prototype/parse.rb
index adf2b91..40a69e7 100644
--- a/prototype/parse.rb
+++ b/prototype/parse.rb
@@ -90,14 +90,10 @@ class Item < Grammar::Rule
rule_or_item.rhs.each_with_index { |x,i| # duplicate rhs partially
@rhs << x
if x.class == Grammar::NT
- begin
- if i >= dot
- @tail_spans[i] = Span.new(-1, -1)
- else
- @tail_spans[i] = rule_or_item.tail_spans[i].dup
- end
- rescue
+ if i >= dot || !rule_or_item.is_a?(Item)
@tail_spans[i] = Span.new(-1, -1)
+ else
+ @tail_spans[i] = rule_or_item.tail_spans[i].dup
end
end
}