Class: OrigenAppGenerators::SubBlockParser

Inherits:
Object
  • Object
show all
Defined in:
lib/origen_app_generators/sub_block_parser.rb

Overview

Responsible for parsing something like this:

"ram, osc, pll, atd(2), comms[ram(2), osc](3)"

into this:

{
  "RAM"=>{}, "Osc"=>{}, "PLL"=>{}, "ATD"=> {:instances=>2},
  "Comms"=>{:instances=>3, :children=>{"RAM"=>{:instances=>2}, "Osc"=>{}}}
}

Instance Method Summary collapse

Instance Method Details

#parse(str) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/origen_app_generators/sub_block_parser.rb', line 15

def parse(str)
  r = {}
  split(str).each do |tag|
    tag, i = extract_instances(tag)
    name, children = extract_children(tag)
    name = camelize(name)
    r[name] = {}
    r[name][:instances] = i if i
    r[name][:children] = children if children
  end
  r
end