Class: SignaturePlugin
- Defined in:
- lib/tecsgen/plugin/SignaturePlugin.rb
Overview
signature プラグインの共通の親クラス
Direct Known Subclasses
C2TECSBridgePlugin, Mruby2CBridgePlugin, MrubyBridgeSignaturePlugin, MrubyInfoBridgeSignaturePlugin, OpaqueMarshalerPlugin, TECS2CBridgePlugin
Constant Summary
Constants inherited from Plugin
Class Method Summary collapse
-
.gen_post_code(file) ⇒ Object
後ろのコードを生成 プラグインの後ろの CDL コードを生成 file:: File:.
Instance Method Summary collapse
-
#gen_ep_func_body(file, b_singleton, ct_name, global_ct_name, sig_name, ep_name, func_name, func_global_name, func_type, params) ⇒ Object
受け口関数の本体(C言語)を生成する 通常であれば、ジェネレータは受け口関数のテンプレートを生成する プラグインの場合、変更する必要のないセルタイプコードを生成する file:: FILE 出力先ファイル b_singleton:: bool true if singleton ct_name:: Symbol global_ct_name:: string sig_name:: string ep_name:: string func_name:: string func_global_name:: string func_type:: class derived from Type.
-
#initialize(signature, option) ⇒ SignaturePlugin
constructor
- signature
-
Signature シグニチャ(インスタンス).
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(signature, option) ⇒ SignaturePlugin
- signature
-
Signature シグニチャ(インスタンス)
45 46 47 48 49 50 51 52 |
# File 'lib/tecsgen/plugin/SignaturePlugin.rb', line 45 def initialize(signature, option) super() @signature = signature # @plugin_arg_str = option.gsub( /\A"(.*)/, '\1' ) # 前後の "" を取り除く # @plugin_arg_str.sub!( /(.*)"\z/, '\1' ) @plugin_arg_str = CDLString.remove_dquote option @plugin_arg_list = {} end |
Class Method Details
.gen_post_code(file) ⇒ Object
後ろのコードを生成
プラグインの後ろの CDL コードを生成
- file
-
File:
57 58 59 60 |
# File 'lib/tecsgen/plugin/SignaturePlugin.rb', line 57 def self.gen_post_code(file) # 複数のプラグインの post_code が一つのファイルに含まれるため、以下のような見出しをつけること # file.print "/* '#{self.class.name}' post code */\n" end |
Instance Method Details
#gen_ep_func_body(file, b_singleton, ct_name, global_ct_name, sig_name, ep_name, func_name, func_global_name, func_type, params) ⇒ Object
受け口関数の本体(C言語)を生成する
通常であれば、ジェネレータは受け口関数のテンプレートを生成する
プラグインの場合、変更する必要のないセルタイプコードを生成する
- file
-
FILE 出力先ファイル
- b_singleton
-
bool true if singleton
- ct_name
-
Symbol
- global_ct_name
-
string
- sig_name
-
string
- ep_name
-
string
- func_name
-
string
- func_global_name
-
string
- func_type
-
class derived from Type
74 75 76 |
# File 'lib/tecsgen/plugin/SignaturePlugin.rb', line 74 def gen_ep_func_body(file, b_singleton, ct_name, global_ct_name, sig_name, ep_name, func_name, func_global_name, func_type, params) raise "gen_ep_func_body must be overridden by sub class" end |