lib/lrama/states_reporter.rb in lrama-0.6.1 vs lib/lrama/states_reporter.rb in lrama-0.6.2

- old
+ new

@@ -51,11 +51,11 @@ def report_grammar(io) io << "Grammar\n" last_lhs = nil @states.rules.each do |rule| - if rule.rhs.empty? + if rule.empty_rule? r = "ε" else r = rule.rhs.map(&:display_name).join(" ") end @@ -82,32 +82,30 @@ # Report item last_lhs = nil list = itemsets ? state.items : state.kernels list.sort_by {|i| [i.rule_id, i.position] }.each do |item| - rule = item.rule - position = item.position - if rule.rhs.empty? + if item.empty_rule? r = "ε •" else - r = rule.rhs.map(&:display_name).insert(position, "•").join(" ") + r = item.rhs.map(&:display_name).insert(item.position, "•").join(" ") end - if rule.lhs == last_lhs - l = " " * rule.lhs.id.s_value.length + "|" + if item.lhs == last_lhs + l = " " * item.lhs.id.s_value.length + "|" else - l = rule.lhs.id.s_value + ":" + l = item.lhs.id.s_value + ":" end la = "" if lookaheads && item.end_of_rule? reduce = state.find_reduce_by_item!(item) look_ahead = reduce.selected_look_ahead if !look_ahead.empty? la = " [#{look_ahead.map(&:display_name).join(", ")}]" end end - last_lhs = rule.lhs + last_lhs = item.lhs - io << sprintf("%5i %s %s%s\n", rule.id, l, r, la) + io << sprintf("%5i %s %s%s\n", item.rule_id, l, r, la) end io << "\n" # Report shifts tmp = state.term_transitions.select do |shift, _|