Class: LexerKit::Builder::ConflictDetector

Inherits:
Object
  • Object
show all
Defined in:
lib/lexer_kit/builder/conflict_detector.rb

Overview

ConflictDetector analyzes token patterns to detect potential conflicts. A conflict occurs when multiple patterns can match the same input.

Defined Under Namespace

Classes: Conflict

Instance Method Summary collapse

Constructor Details

#initialize(builder) ⇒ ConflictDetector

Returns a new instance of ConflictDetector.



10
11
12
13
# File 'lib/lexer_kit/builder/conflict_detector.rb', line 10

def initialize(builder)
  @builder = builder
  @conflicts = []
end

Instance Method Details

#detectArray<Conflict>

Detect all conflicts in the lexer definition

Returns:



17
18
19
20
21
22
23
24
25
# File 'lib/lexer_kit/builder/conflict_detector.rb', line 17

def detect
  @conflicts = []

  @builder.mode_defs.each do |_mode_name, mode_def|
    detect_mode_conflicts(mode_def)
  end

  @conflicts
end