Top Level Namespace
Defined Under Namespace
Modules: CType, CelltypePluginModule, GenOpaqueMarshaler, GenParamCopy, GenTransparentMarshaler, HasType, Importable, MrubyBridgeCelltypePluginModule, MrubyBridgeSignaturePluginModule, PluginModule, TCFlow, TECSCDE, TECSFlow, TECSInfo
Classes: ATK1AlarmPlugin, ATK1DelayTaskPlugin, ATK1EventPlugin, ATK1ISRPlugin, ATK1KernelPlugin, ATK1ResourcePlugin, ATK1TaskPlugin, AppFile, Array, ArrayType, BDNode, BaseVal, BoolType, BoolVal, C2TECSBridgePlugin, CArrayType, CBoolType, CDLInitializer, CDLString, CDefinedType, CEnumType, CFile, CFloatType, CFuncType, CIntType, CPtrType, CStructType, CVoidType, C_EXP, C_parser, Cell, CellPlugin, Celltype, CelltypePlugin, CompositeCelltype, CompositeCelltypeJoin, CompositePlugin, Console, Decl, DefinedType, DescriptorType, DomainPlugin, DomainType, EnumType, Expression, Factory, FloatType, FloatVal, FuncHead, FuncType, Generate, Generator, HRP2AlarmHandlerPlugin, HRP2CyclicHandlerPlugin, HRP2DataqueuePlugin, HRP2EventflagPlugin, HRP2FixedSizeMemoryPoolPlugin, HRP2HandlerPlugin, HRP2KernelObjectPlugin, HRP2ObjectPlugin, HRP2Plugin, HRP2PostHook, HRP2PriorityDataqueuePlugin, HRP2RPCPlugin, HRP2SVCPlugin, HRP2SemaphorePlugin, HRP2TaskPlugin, HRPHandlerPlugin, HRPKernelObjectManager, HRPKernelObjectPlugin, HRPObjectPlugin, HRPPlugin, HRPRPCPlugin, HRPSVCPlugin, HRPTaskPlugin, Import, Import_C, IntType, IntegerVal, Join, MemFile, Mruby2CBridgePlugin, MrubyBridgeCellPlugin, MrubyBridgeCelltypePlugin, MrubyBridgeCompositePlugin, MrubyBridgePlugin, MrubyBridgeSignaturePlugin, MrubyInfoBridgePlugin, MrubyInfoBridgeSignaturePlugin, MultiPlugin, NSBDNode, NamedList, Namespace, NamespacePath, Node, NotifierPlugin, Object, OpaqueMarshalerPlugin, OpaqueRPCPlugin, ParamDecl, ParamList, Plugin, PointerVal, Port, Proc, PtrType, RPCPlugin, Region, RepeatCellPlugin, RepeatJoinPlugin, ReverseJoin, SVCManage, SharedOpaqueRPCPlugin, SharedRPCPlugin, Signature, SignaturePlugin, StringVal, StructType, TCFLOW_Cparser, TECS2CBridgePlugin, TECSGEN, TECSIO, TECSInfoPlugin, TECSMsg, TECS_LANG, TOOL_INFO, ThroughPlugin, Token, TracePlugin, Type, Typedef, VoidType
Constant Summary
collapse
- Include =
ファイル => INCLUDE(“header”)の配列
Hash.new {|hash, key| hash[key] = []}
- XML_INDENT =
TECS Generator
Generator for TOPPERS Embedded Component System
Copyright (C) 2008-2014 by TOPPERS Project
–
上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
(1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
権表示,この利用条件および下記の無保証規定が,そのままの形でソー
スコード中に含まれていること.
(2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
用できる形で再配布する場合には,再配布に伴うドキュメント(利用
者マニュアルなど)に,上記の著作権表示,この利用条件および下記
の無保証規定を掲載すること.
(3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
用できない形で再配布する場合には,次のいずれかの条件を満たすこ
と.
(a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
作権表示,この利用条件および下記の無保証規定を掲載すること.
(b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
報告すること.
(4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
免責すること.
本ソフトウェアは,無保証で提供されているものである.上記著作権者お
よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
の責任を負わない.
$Id: gen_xml.rb 2061 2014-05-31 22:15:33Z okuma-top $
++
" "
- NotifierPluginArgProc =
TECS Generator
Generator for TOPPERS Embedded Component System
Copyright (C) 2015 by Ushio Laboratory
Graduate School of Engineering Science, Osaka Univ., JAPAN
Copyright (C) 2015-2016 by Embedded and Real-Time Systems Laboratory
Graduate School of Information Science, Nagoya Univ., JAPAN
Copyright (C) 2015-2018 by TOPPERS Project
–
上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
(1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
権表示,この利用条件および下記の無保証規定が,そのままの形でソー
スコード中に含まれていること.
(2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
用できる形で再配布する場合には,再配布に伴うドキュメント(利用
者マニュアルなど)に,上記の著作権表示,この利用条件および下記
の無保証規定を掲載すること.
(3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
用できない形で再配布する場合には,次のいずれかの条件を満たすこ
と.
(a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
作権表示,この利用条件および下記の無保証規定を掲載すること.
(b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
報告すること.
(4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
免責すること.
本ソフトウェアは,無保証で提供されているものである.上記著作権者お
よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
の責任を負わない.
$Id: NotifierPlugin.rb 2952 2018-05-07 10:19:07Z okuma-top $
++
{
"factory" => Proc.new {|obj, rhs| obj.set_factory(rhs) },
"output_file" => Proc.new {|obj, rhs| obj.set_factory_output_file(rhs) }
}
Instance Method Summary
collapse
Instance Method Details
#begin_extern_C(f) ⇒ Object
81
82
83
84
85
86
87
|
# File 'lib/tecsgen/core/generate.rb', line 81
def begin_extern_C(f)
f.print <<EOT
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
EOT
end
|
#dbgPrint(str) ⇒ Object
174
175
176
177
178
|
# File 'lib/tecsgen.rb', line 174
def dbgPrint(str)
if $debug
print str
end
end
|
#dbgPrintf(*param) ⇒ Object
180
181
182
183
184
|
# File 'lib/tecsgen.rb', line 180
def dbgPrintf(*param)
if $debug
printf(*param)
end
end
|
#end_extern_C(f) ⇒ Object
89
90
91
92
93
94
95
|
# File 'lib/tecsgen/core/generate.rb', line 89
def end_extern_C(f)
f.print <<EOT
#ifdef __cplusplus
}
#endif /* __cplusplus */
EOT
end
|
#endif_cb_type_only(f) ⇒ Object
74
75
76
77
78
79
|
# File 'lib/tecsgen/core/generate.rb', line 74
def endif_cb_type_only(f)
f.print <<EOT
#endif /* TOPPERS_CB_TYPE_ONLY */
EOT
end
|
#endif_macro_only(f) ⇒ Object
53
54
55
56
57
58
|
# File 'lib/tecsgen/core/generate.rb', line 53
def endif_macro_only(f)
f.print <<EOT
#endif /* TOPPERS_MACRO_ONLY */
EOT
end
|
#ifdef_cb_type_only(f) ⇒ Object
67
68
69
70
71
72
|
# File 'lib/tecsgen/core/generate.rb', line 67
def ifdef_cb_type_only(f)
f.print <<EOT
#ifdef TOPPERS_CB_TYPE_ONLY
EOT
end
|
#ifdef_macro_only(f) ⇒ Object
TECS Generator
Generator for TOPPERS Embedded Component System
Copyright (C) 2008-2019 by TOPPERS Project
–
上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
(1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
権表示,この利用条件および下記の無保証規定が,そのままの形でソー
スコード中に含まれていること.
(2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
用できる形で再配布する場合には,再配布に伴うドキュメント(利用
者マニュアルなど)に,上記の著作権表示,この利用条件および下記
の無保証規定を掲載すること.
(3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
用できない形で再配布する場合には,次のいずれかの条件を満たすこ
と.
(a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
作権表示,この利用条件および下記の無保証規定を掲載すること.
(b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
報告すること.
(4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
免責すること.
本ソフトウェアは,無保証で提供されているものである.上記著作権者お
よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
の責任を負わない.
$Id: generate.rb 2834 2018-03-18 06:20:15Z okuma-top $
++
39
40
41
42
43
44
|
# File 'lib/tecsgen/core/generate.rb', line 39
def ifdef_macro_only(f)
f.print <<EOT
#ifndef TOPPERS_MACRO_ONLY
EOT
end
|
#ifndef_cb_type_only(f) ⇒ Object
60
61
62
63
64
65
|
# File 'lib/tecsgen/core/generate.rb', line 60
def ifndef_cb_type_only(f)
f.print <<EOT
#ifndef TOPPERS_CB_TYPE_ONLY
EOT
end
|
#ifndef_macro_only(f) ⇒ Object
46
47
48
49
50
51
|
# File 'lib/tecsgen/core/generate.rb', line 46
def ifndef_macro_only(f)
f.print <<EOT
#ifndef TOPPERS_MACRO_ONLY
EOT
end
|
#print_exception(evar) ⇒ Object
162
163
164
165
166
167
168
169
170
171
172
|
# File 'lib/tecsgen.rb', line 162
def print_exception(evar)
print "*** Begin Ruby exception message ***\n"
puts(evar.to_s)
if $debug
puts "#### stack trace ####"
pp evar.backtrace
end
print "*** End Ruby exception message ***\n"
end
|
#print_indent(f, n) ⇒ Object
59
60
61
62
63
64
65
66
|
# File 'lib/tecsflow.rb', line 59
def print_indent( level )
if level > 0 then
print " " * level
return level
else
return - level
end
end
|
#print_Makefile_note(f) ⇒ Object
111
112
113
|
# File 'lib/tecsgen/core/generate.rb', line 111
def print_Makefile_note(f)
f.print TECSMsg.get(:Makefile_note)
end
|
#print_note(f, b_complete = true) ⇒ Object
97
98
99
100
101
102
103
104
105
106
107
108
109
|
# File 'lib/tecsgen/core/generate.rb', line 97
def print_note(f, b_complete = true)
if b_complete
f.print "/*\n"
else
f.print " *\n"
end
f.print TECSMsg.get(:note)
if b_complete
f.print " */\n"
else
f.print " *\n"
end
end
|
#print_report ⇒ Object
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
|
# File 'lib/tecsgen.rb', line 187
def print_report
msg = nil
if Generator.get_n_error != 0
msg = "#{Generator.get_n_error} error"
msg = "#{msg}s" if Generator.get_n_error >= 2
end
if Generator.get_n_warning != 0
msg = "#{msg} " if msg
msg = "#{msg}#{Generator.get_n_warning} warning"
msg = "#{msg}s" if Generator.get_n_warning >= 2
end
puts msg if msg
end
|
#require_tecsgen_lib(fname, b_fatal = true) ⇒ Object
RUBY ライブラリをロードする
-L, $RUBYLIB, システム(/usr/lib/rub..など) の順にサーチが行われる exerb 対応のため、上記パスにファイルが見つからない場合 require を実行してみる
プラグインの場合は b_fatal = false を指定。ファイルがなくてもエラー出力後、処理続行 b_fatal = false の場合 tecslib/core がサーチパスに追加される RETURN::Bool : true=成功、 false=失敗 失敗した場合、Generator.error は呼び元で出力する
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
|
# File 'lib/tecsgen.rb', line 94
def require_tecsgen_lib(fname, b_fatal = true)
dbgPrint("require_lib: #{fname}\n")
begin
b_require = false
b_exception = false
($library_path + $LOAD_PATH).each{|path|
["", "tecslib/plugin/"].each {|lp|
lib = File.expand_path(path) + "/" + lp + fname
if File.exist? lib begin
require(lib)
b_require = true
rescue Exception => evar
b_exception = true
print_exception(evar)
end
break
end
}
if b_require
break
end
}
if b_require == false && b_exception == false
["", "tecslib/plugin/"].each{|lp|
path = lp + fname
begin
require path
return true
rescue LoadError => e
rescue Exception => e
b_exception = true
print_exception(e)
break
end
}
end
if b_require == false
if b_exception == false
STDERR << "tecsgen: Fail to load #{fname}. Check $RUBYLIB environment variable or -L option\n"
end
if b_fatal
STDERR << "tecsgen: Exit because of unrecoverble error\n"
exit 1
end
return false
end
return true
end
end
|