Files
krkr2doc/docs/tjs2doc/contents/pp.html
2016-09-08 17:50:19 +09:00

80 lines
5.6 KiB
HTML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<!-- generated by to_html.pl from pp.xml -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>プリプロセッサ</title>
<meta name="author" content="W.Dee" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<link href="browser.css" type="text/css" rel="stylesheet" title="吉里吉里関連リファレンス用標準スタイル" />
<link href="mailto:[email protected]" rev="Made" />
<link href="index.html" target="_top" rel="Start" title="トップページ" />
</head>
<body>
<h1><a id="id273" name="id273">プリプロセッサ</a>
</h1><div class="para"><div>
 TJS2 は、<a id="id274" name="id274" class="targanchor"><dfn>条件コンパイル式</dfn></a> ( C の #if や #endif に対応するもの ) の処理を行うことができます。これは、スクリプトが実際に解釈される前に処理され、条件によってスクリプトの部分を解釈させないようにしたり、解釈させるようにしたりする事ができます。<br />
 条件コンパイル式のスタイルは C のプリプロセッサ指令とは違い、フリースタイルとなり、どこにでも書くことができます。C の指令のように、一行に1指令のみを書かなければならないと言うことはありません。<br />
</div></div>
<h1><a id="id275" name="id275">@set 指令</a>
</h1><div class="para"><div>
 @set 指令は、条件コンパイル式を評価し、結果を捨てます。構文は以下の通りです。
<br />
<code class="bq">&nbsp;&nbsp;&nbsp;&nbsp;@set(式)<br />
</code>
<br />
 「式」には条件コンパイル式を書きます。ここには、以下の演算子を使うことができます。<br />
<br />
<code class="bq">&nbsp;&nbsp;&nbsp;&nbsp;,&nbsp;&nbsp;=&nbsp;&nbsp;!=&nbsp;&nbsp;==&nbsp;&nbsp;||&nbsp;&nbsp;&amp;&amp;&nbsp;&nbsp;|&nbsp;&nbsp;^&nbsp;&nbsp;&amp;&nbsp;&nbsp;&lt;&nbsp;&nbsp;&gt;&nbsp;&nbsp;&lt;=&nbsp;&nbsp;&gt;=&nbsp;&nbsp;+&nbsp;&nbsp;-&nbsp;&nbsp;%&nbsp;&nbsp;*&nbsp;&nbsp;/&nbsp;&nbsp;!&nbsp;&nbsp;+&nbsp;&nbsp;-&nbsp;&nbsp;(&nbsp;)<br />
</code>
<br />
 これらの演算子の意味については <a target="main" class="jump" href="expr_and_op.html">式と演算子</a> をご覧ください。ただし、扱えるデータ型は整数のみです。<br />
 また、任意の変数、即値を使用することができます。変数名の命名規則については、 <a target="main" class="jump" href="token.html">トークン</a> の変数の命名規則や即値と同じ規則が適用されます。<br />
 ただし、プリプロセッサ中で使用する変数と、TJS2 スクリプト中で使用する変数は干渉しません ( 同じ名前空間を共有しません )。<br />
</div></div>
<h1><a id="id276" name="id276">@if 指令, @endif 指令</a>
</h1><div class="para"><div>
 @if 指令は、条件コンパイル式を評価し、結果が 0 であれば、次に @endif が来るまで、その間を解釈しないようにします。結果が 0 以外の場合は解釈されます。<br />
 構文は以下の通りです。<br />
<br />
<code class="bq">&nbsp;&nbsp;&nbsp;&nbsp;@if(式)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@endif<br />
</code>
<br />
&nbsp;&nbsp;&nbsp;&nbsp;「式」には条件コンパイル式を指定します。 @if ~ @endif は入れ子にできます。<br />
<br />
<br />
<code class="bq"><span class="weak">例:</span><br />&nbsp;&nbsp;&nbsp;&nbsp;@if(flag==0)&nbsp;&nbsp;<span class="comment">//&nbsp;まだ何も代入されていない変数は&nbsp;0&nbsp;であると見なされる</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@set(flag=1)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;****<br />
&nbsp;&nbsp;&nbsp;&nbsp;@endif<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">//&nbsp;&nbsp;&nbsp;****&nbsp;の部分に書かれたスクリプトのコンパイルを一度きりのものとする</span><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;@if(version&gt;=0x02040009)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@if(flag)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;****<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@endif<br />
&nbsp;&nbsp;&nbsp;&nbsp;@endif&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">//&nbsp;&nbsp;version&nbsp;&nbsp;0x02040009&nbsp;(2.4.9)&nbsp;以上で&nbsp;flag&nbsp;&nbsp;0&nbsp;以外の時のみ&nbsp;****&nbsp;の部分をコンパイルする</span><br />
</code>
<br />
</div></div>
<h1><a id="id277" name="id277">定義済み変数</a>
</h1><div class="para"><div>
 <a id="id278" name="id278" class="targanchor"><dfn>version</dfn></a> 変数が、現在の TJS2 のバージョンを表しています。<br />
<br />
 数値として、16進数で 0x0XYYZZZZ の形式であり、 X の部分はメジャーバージョン、YY の部分はマイナーバージョン、ZZZZ はリリース番号を表します。たとえば 0x02040009 であれば、バージョンは 2.4.9 です。</div></div>
<script type="text/javascript" charset="UTF-8" src="documentid.js" ></script>
<script type="text/javascript" charset="UTF-8" src="postcontent.js" ></script>
</body>
</html>