Home > C/C++ > なんぞこれ

なんぞこれ

  • 2008年7月20日 02:41
  • C/C++

よく判らないgoogle-ctemplateのユーティリティたちの紹介?

make_tpl_varnames_h

テンプレートファイル内から{{VARNAME}}、{{#SECNAME}}、{{TPLNAME}}形式で記述された名称を取得し、
それらを定数として定義したヘッダファイルを作成します。
使い方は以下。

$ cat test.tpl
<h2>{{CONTENT}}</h2>
<p>Copyright:{{COPYRIGHT}}</p>

$ make_tpl_varnames_h test.tpl

------ Checking test.tpl ------
No syntax errors detected in test.tpl
Creating ./test.tpl.varnames.h

$ cat test.tpl.varnames.h
//
// This header file auto-generated for the template
//    /path/to/templates/./test.tpl
// by make_tpl_varnames_h
// DO NOT MODIFY THIS FILE DIRECTLY
//
const char * const kt_CONTENT = "CONTENT";
const char * const kt_COPYRIGHT = "COPYRIGHT";

複数のテンプレートに同じ名前が使用されていて、それらのヘッダファイルを同時にインクルードしてしまうと、定数の重複定義エラーになってしまう。
さらに、複数のファイル内で同一ヘッダファイルを読み込むと、これまた重複定義エラーになってしまう。
※多重読み込み防止の制御(#ifndef XXX_H ~ #define XXX_H ~ #endif のやつ)がないため。
イマイチ使えない・・・。

template-converter

テンプレートのソースを実行バイナリ内に組み込みたい場合に使います。
通常通りにテンプレートファイルを作成し、以下の手順で文字列に変換して使用します。

$ cat test.tpl
<h2>{{CONTENT}}</h2>
<p>Copyright:{{COPYRIGHT}}</p>

$ template-converter

Need to specify template variable name.
Usage: template-converter <template-varname> [infile] [outfile]

$ template-converter test.tpl test.tpl out.txt

$ cat out.txt
// This file automatically generated by template-converter
// DO NOT EDIT!

#ifndef _TEST_TPL_H
#define _TEST_TPL_H

const string test_tpl (
"<h2>{{CONTENT}}</h2>\n"
"<p>Copyright:{COPYRIGHT}}</p>\n"
);

#endif /* _TEST_TPL_H */

要は、テンプレートの内容を文字列化し、定数として定義したヘッダファイルを作成するツール。
使えなくはないけどあんまいらない・・・

diff_tpl_auto_escape

指定されたエスケープと、ソース内のエスケープ修飾子が異なる箇所を出力する?
ドキュメント読んだり、実際に試してみても意味がよく判りませんでした。。。

Comments:1

Comment Form

画像の中に見える文字を入力してください。

Klein31Malinda 2012年2月 7日 16:14

If you want to buy real estate, you will have to get the loan. Furthermore, my brother commonly takes a short term loan, which occurs to be really reliable.

Trackbacks:0

TrackBack URL for this entry
http://fyuji.s27.xrea.com/x/mt-tb.cgi/66
Listed below are links to weblogs that reference
なんぞこれ from orz公開所

Home > C/C++ > なんぞこれ

Search
iKnow!バッジ


Feeds

Return to page top