Class: DomainPlugin

Inherits:
Plugin show all
Defined in:
lib/tecsgen/plugin/DomainPlugin.rb

Overview

ドメインプラグインの親クラス

Direct Known Subclasses

HRP2Plugin, HRPPlugin

Constant Summary

Constants inherited from Plugin

Plugin::PluginArgProc

Instance Method Summary collapse

Methods inherited from Plugin

#cdl_error, #check_plugin_arg, #gen_cdl_file, #gen_ep_func?, #gen_postamble, #gen_preamble, #new_cell, #parse_plugin_arg, #print_msg, #set_locale, #set_silent

Methods inherited from Node

#cdl_error, #cdl_error2, #cdl_error3, #cdl_info, #cdl_info2, #cdl_warning, #cdl_warning2, #get_locale, #locale_str, #set_locale

Constructor Details

#initialize(region, domain_type_name, option) ⇒ DomainPlugin

domain 指定されたリージョンが定義された

region で domain 指定があった domain_type_name::Symbol : domain 指定子の第一引数 option::String : domain 指定子の第二引数



45
46
47
# File 'lib/tecsgen/plugin/DomainPlugin.rb', line 45

def initialize(region, domain_type_name, option)
  super()
end

Instance Method Details

#add_through_plugin(join, current_region, next_region, through_type) ⇒ Object

結合 join にプラグインを挿入する

join::Join : 結合に関する情報 return::[ plugin_name::String, option::String ]: 挿入するプラグイン。 挿入するものがなければ nil を返す return::(1) [ plugin_name, option ] or (2) [[ plugin_name, option ], …], or [] or nil: (2): not supported now

nil: region 間の結合禁止, []: region 間の結合可(プラグイン挿入無し)
[ plugin_name, option ]: *_through( plugin_name, option ) 指定したのと同等

region 間の through が指定されている場合、out_through, to_through では、それらによって指定されたプラグインの後ろに、in_through の場合 in_through プラグインの前に挿入される

このメソッドが呼出された時点では Join#get_rhs_cell など意味解析後 にしか呼び出せないメソッドを呼出しても、有効な値は得られない



63
64
65
66
67
68
69
70
71
72
# File 'lib/tecsgen/plugin/DomainPlugin.rb', line 63

def add_through_plugin(join, current_region, next_region, through_type)
  # join.get_owner:Cell  左辺のセル
  # join.get_definition:Port 呼び口
  # join.get_subscript:Integer or nil 呼び口配列の添数 (Join::@subscript の説明参照)
  # join.get_cell:Cell 右辺のセル
  # join.get_port_name:Symbol 受け口
  # get_rhs_subscript:Integer or nil 受け口配列の添数 (Join::@rhs_subscript の説明参照)
  # return []
  return nil
end

#gen_factoryObject

factory 生成

DomainPlugin の factory は特定のファイルへの出力が想定されていない



87
88
# File 'lib/tecsgen/plugin/DomainPlugin.rb', line 87

def gen_factory
end

#get_kindObject

ドメイン種別を返す

return::Symbol :kernel, :user, :OutOfDomain



81
82
83
# File 'lib/tecsgen/plugin/DomainPlugin.rb', line 81

def get_kind
  :kernel
end

#joinable?(current_region, next_region, through_type) ⇒ Boolean

require が結合可能か?

Returns:

  • (Boolean)


75
76
77
# File 'lib/tecsgen/plugin/DomainPlugin.rb', line 75

def joinable?(current_region, next_region, through_type)
  return false
end