Class: SignaturePlugin

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

Overview

signature プラグインの共通の親クラス

Constant Summary

Constants inherited from Plugin

Plugin::PluginArgProc

Class Method Summary collapse

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(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