Class: Lrama::Warnings::UselessPrecedence

Inherits:
Object
  • Object
show all
Defined in:
lib/lrama/warnings/useless_precedence.rb

Instance Method Summary collapse

Constructor Details

#initialize(logger, warnings) ⇒ UselessPrecedence

Returns a new instance of UselessPrecedence.



8
9
10
11
# File 'lib/lrama/warnings/useless_precedence.rb', line 8

def initialize(logger, warnings)
  @logger = logger
  @warnings = warnings
end

Instance Method Details

#warn(grammar, states) ⇒ Object



14
15
16
17
18
19
20
21
22
# File 'lib/lrama/warnings/useless_precedence.rb', line 14

def warn(grammar, states)
  return unless @warnings

  grammar.precedences.each do |precedence|
    unless precedence.used_by?
      @logger.warn("Precedence #{precedence.s_value} (line: #{precedence.lineno}) is defined but not used in any rule.")
    end
  end
end