掲示板一覧   -   トピック一覧
   EA ソースコード生成・コード生成テンプレート
     独自の言語のテンプレートで、ソースファイルを生成したい


スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 トピック
未登録ゲスト
投稿日時: 2009-10-20 17:34

独自の言語のテンプレートで、ソースファイルを生成したい

こんにちは、お世話になります。

コード生成テンプレート機能を利用して、独自の言語テンプレートの定義を行いました。
各テンプレートの内容は、コード生成テンプレートエディタを使って、C言語のコード生成
テンプレートをそのままコピーしたものを記述しています。

このようにして作成した独自の言語テンプレートから、コード生成を実行してみたのですが、
ヘッダファイルは生成されるようなのですが、コードファイルが生成されません。

独自の言語テンプレートを使って、コードファイルを生成する事は可能でしょうか?
ご教授戴ければ幸いです。
tkouno
投稿日時: 2009-10-20 17:41
EA Administrator
投稿: 3939

Re: 独自の言語のテンプレートで、ソースファイルを生成したい

ご希望の件は、「MDGテクノロジー」の機能を利用しないと
設定することができません。
(ただ、配布する場合にはおそらくMDGテクノロジーの形に
なるかと思いますので、以下の内容を試して無駄になることはないと
思います。)

具体的には、ヘルプファイルの「コードモジュールの追加」の
ページをご覧下さい。

このページの下の方に「Code Option」として設定できる内容が一覧に
なっており、この値の「HasImplementation」「ImplementationExtension」などを
設定し、MDGテクノロジーファイルとして生成する必要が
あります。

ぜひお試し下さい。

未登録ゲスト
投稿日時: 2009-10-21 10:06

Re: 独自の言語のテンプレートで、ソースファイルを生成したい

早速の返信、有難うございます。

ご教授戴きました、MDGテクノロジーの作成について試してみたのですが、
「MDGテクノロジーの設定」での挙動について疑問が生じ、お聞きしたい次第です。

ヘルプを参考に、「MDGテクノロジーを作成」→「MDGテクノロジーを読み込み」まで
問題なく実行できているように思えるのですが、その後「MDGテクノロジーの設定」で、
追加したMDGテクノロジを有効にすべく、チェックボックスをチェック→OKで
「MDGテクノロジーの設定」ウィンドウを閉じ、もう一度「MDGテクノロジーの設定」
ウィンドウを開くと、チェックしたはずのチェックボックスが未チェックの状態と
なっています。

この状態でソースコードの生成を実行しても、やはりコードが生成されません。

作成したMDGテクノロジーの内容に問題があるのでしょうか?
お分かりになる事がありましたら、ご指摘戴ければ幸いです。
tkouno
投稿日時: 2009-10-21 10:09
EA Administrator
投稿: 3939

Re: 独自の言語のテンプレートで、ソースファイルを生成したい

ご指摘の現象が起きる場合の原因のほとんどは、
MDGテクノロジーのIDが、既存の他のテクノロジーのIDと
重複していることが原因です。

お手数をおかけし申し訳ございませんが、IDを変更して
結果をご確認ください。

未登録ゲスト
投稿日時: 2009-10-21 11:40

Re: 独自の言語のテンプレートで、ソースファイルを生成したい

ご回答、有難うございます。

ご指摘の通り、以前MDGテクノロジー作成について試していた際に指定した
IDと被っていたようです。

IDを修正の上、MDGテクノロジーを読み込みしなおし、コード生成を実行すると、
希望の通り実装ファイルを生成する事が出来ました。
ご教授、有難うございました。


生成結果について、細かい事なのですが、クラスのプロパティの「ファイル名」で
「class.h」と指定している条件で、生成される実装ファイルの名前が「class.h.c」
のようになってしまいます。

既存のC言語のテンプレートでは、上記のようにクラスのプロパティを指定していても
「class.h.c」のようにはならず、「class.c」となります。


現状、コードオプションファイルでは以下のようにコードオプションを設定しています。

DefaultExtension = .h
ImplementationExtension = .c
HasImplementation = true


クラスプロパティのファイル名「class.h」という値から、ヘッダファイルの拡張子を
抜き出して、実装ファイルの名前が「class.c」と生成されるようにする方法は
ありますでしょうか?
tkouno
投稿日時: 2009-10-21 12:00
EA Administrator
投稿: 3939

Re: 独自の言語のテンプレートで、ソースファイルを生成したい

ご指摘の内容と同じ設定でMDGテクノロジーファイルを作成しましたが
問題を再現することができませんでした。
(ただしく、.hと.cのファイルが生成されます。プロパティには
.hの拡張子を含むファイル名が入っています。)


お手数をおかけし申し訳ございませんが、以下の点について
ご確認ください。

・もし最新版ではない場合、最新のEAで再現するかどうか
・新規のクラスに対して問題が発生するかどうか
・新規のプロジェクトに対して問題が発生するかどうか
・拡張子の設定に間違いがないかどうか
 (全角・半角など)

未登録ゲスト
投稿日時: 2009-10-21 15:11

Re: 独自の言語のテンプレートで、ソースファイルを生成したい

ご回答、有難うございました。

ご指摘戴いた内容を元に色々試してみた結果、作成したMDGテクノロジーファイルの
読み込み方が間違っていた事が原因と判明しました。

ツールメニューで「MDGテクノロジーファイルの作成」の上にある「MDGテクノロジー
ファイルの読み込み」が使えるものだと、漫然と思い込んでいたのですが、ヘルプには
「このコマンドを使用する事は非推奨」と書いてある事に気がつき、その後はヘルプに
示される通り、作成したMDGテクノロジーファイルを Program Files の EA\MDGTechnologies
に配置してEAを起動するか、設定メニューの[MDGテクノロジー]>[追加設定]で追加する
事で、うまく「class.c」を生成できるようになりました。

迅速な対応、感謝致しております。
また何かありましたら、ご助力戴ければ幸いです。

tkouno
投稿日時: 2009-10-21 15:17
EA Administrator
投稿: 3939

Re: 独自の言語のテンプレートで、ソースファイルを生成したい

お忙しい中ご確認ありがとうございました。

ご提示の方法は過去との互換性のために残してある機能であり
ご指摘のように、現在は非推奨です。

お手数をおかけし申し訳ございませんでした。


個人的には、このコマンドはなくても困る人はいないようにも
思いますので、次回のバージョン8.0では、日本語版からは
削除したいと思います。

今後ともよろしくお願いします。

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ