Class: Kut::Library::PinsParser

Inherits:
Object
  • Object
show all
Defined in:
lib/kut/library/pins_reader.rb

Class Method Summary collapse

Class Method Details

.parse(in_f) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/kut/library/pins_reader.rb', line 7

def PinsParser.parse(in_f)
  result = OpenStruct.new
  result.left_pins = []
  result.right_pins = []
  result.top_pins = []
  result.bottom_pins = []
  result.other_pins = []
  result.reference = 'U'
  result.names = ['NONAME']        
  
  current_pin_list = result.other_pins
  
  in_f.each_line { |line|
    case line
    when /\A([^#]\S*)\s+(\S+).*/
      current_pin_list << [$2, $1]
    when /\A#NO-PIN\s*/
      current_pin_list << nil
    when /\A#TOP\s*/
      current_pin_list = result.top_pins
    when /\A#BOTTOM\s*/
      current_pin_list = result.bottom_pins
    when /\A#LEFT\s*/
      current_pin_list = result.left_pins  
    when /\A#RIGHT\s*/
      current_pin_list = result.right_pins
    when /\A#REF\s+(\S+)/
      result.reference = $1
    when /\A#NAMES\s+(.*)/
      str =$1.gsub(/\s+/, '')
      result.names = str.split(',')         
    end
  }
  
  result
end