module HDLRuby::Low::Low2HDR

Provides tools for converting HDLRuby::Low objects to hdr text.

Public Class Methods

hdr_call_name(name,args) click to toggle source

Convert a HDLRuby::Low name for instantiation to hdr text with args as argument.

# File lib/HDLRuby/hruby_low2hdr.rb, line 46
def self.hdr_call_name(name,args)
    if hdr_name?(name) then
        # Compatible name return it as is.
        return "#{name} #{[*args].join(",")}"
    else
        # Incompatible, use the ruby "send" operator.
        return "send(:\"#{name}\",#{[*args].join(",")})"
    end
end
hdr_decl_name(name) click to toggle source

Converts a HDLRuby::Low name for declaration to hdr tex.

# File lib/HDLRuby/hruby_low2hdr.rb, line 22
def self.hdr_decl_name(name)
    if hdr_name?(name) then
        # Compatible name return it as is.
        return name.to_s
    else
        # Incompatible, use quotes.
        return "\"#{name}\""
    end
end
hdr_name?(name) click to toggle source

Tells if an HDLRuby::Low name syntax is compatible for hdr text.

# File lib/HDLRuby/hruby_low2hdr.rb, line 17
def self.hdr_name?(name)
    return name =~ /^[a-zA-Z_][a-zA-Z_0-9]*$/
end
hdr_use_name(name) click to toggle source

Converts a HDLRuby::Low name for usage to hdr text.

# File lib/HDLRuby/hruby_low2hdr.rb, line 33
def self.hdr_use_name(name)
    if hdr_name?(name) then
        # Compatible name return it as is.
        return name.to_s
    else
        # Incompatible, use the hdr "send" operator.
        # return "(+:\"#{name}\")"
        return "send(:\"#{name}\")"
    end
end