Home Notices Documents Classes Download Others Rice
Documents  >  tutorial  >  基本の使用法  >  Riceソースコードが備えるべき要件
Riceソースコードが備えるべき要件

このセクションの目的

CookerGXは、Rice言語で書かれたスクリプトを読み込んで実行するアプリケーションです。ですから、先ずは正しく記述されたCookerGX用のRiceスクリプト(ソースコード)が必要になります。

このセクションでは、サンプルを例示してCookerGXのRiceスクリプトファイルに何が必要なのかを学んでいきます。

ファイル要件

サンプルを例示する前に、サンプル内のファイルが満たすべき要件に付いて説明しておきます。

以下がその要件です。


CookerGX用のRiceスクリプトファイルは、UTF-8でエンコーディングされたテキストファイルで、".cgx"拡張子を待たなければならない。


これは本当に重要です、"UTF-8でエンコーディング"の部分が特にです。ここを間違えると、CookerGXからのメッセージが文字化けして意味不明になります。

さらに、この"UTF-8..."は、サンプルアーカイブ内のRiceスクリプトファイル以外のテキストファイルにも適用されます。

例えば、サンプルアーカイブは、いくつかの".js"ファイルを含みます。これは、JavaScriptソースコードを記述したテキストファイルですが、これらもUTF-8でエンコーディングされている必要があります。

なぜ、そうしなければいけないのか?それは、これらの".js"ファイルが、Riceスクリプトに読み込まれてRiceスクリプトの一部になるからです。

これらのファイルのエンコードが異なると、予期しない文字化けに遭遇する可能性が大です。


上記を踏まえて、要件を改めます。


CookerGX用のRiceスクリプトファイルは、UTF-8でエンコーディングされたテキストファイルで、".cgx"拡張子を待たなければならない。

そして、Riceスクリプトが扱うテキストファイルもUTF-8でエンコーディングされなければならない。


最低限のRiceスクリプト

サンプルアーカイブ内の"sample_001.cgx"を以下に示します。これがCookerGXのために記述された最低限のRiceスクリプトです。

1:

class main

2:

open method void start()

3:

endmethod

4:

endclass

スクリプトの実行方法は後述しますが、このスクリプトはCookerGX上で何の問題も無く実行することができます。ただし、実行する意味は有りません。

このスクリプトは、外部に対して意味のある動作を何一つしていないので、実行しても何も起こりません。

そんな最低限で無意味なスクリプトですが、CookerGXのRiceスクリプトとして重要な点をいくつも含んでいます。

以下で、このスクリプトに含まれる重要な点を見ていきましょう。

クラス定義とmainクラス

上記のスクリプトの例を見てください。"class" というワードで始まり"main"というワードが続き、"endclass"というワードで終わっています。

この、"class"で始まり"endclass"で終わるワードの羅列を、Riceではクラス定義と呼びます。この"class"と"endclass"はクラス定義の始まりと終わりを示す特別なワードであり、このような特別なワードをRiceでは"キーワード"と呼びます。

Riceにおいてクラス定義は最も重要な要素です。なぜなら、Riceスクリプトを構成する一番大きな塊がクラス定義だからです。

クラス定義では、classキーワードに続くワードはクラス名の指定です。上記の例は、classキーワードに"main"というワードが続いているので、mainクラスの定義になります。

mainクラスは特別なクラスです。Riceスクリプトには、mainクラスの定義が必須になります。





上記の例は、mainクラスの定義だけですが、クラス名が有効ならば、いくつでもクラスを定義できます。

start() メソッド

上記のスクリプトの例の二、三行目を見てください。ここがクラス定義の中身になります。

ここでは、start()メソッド、つまり、"start"という名前を持つ"引数"のないメソッドを定義しています。

メソッド定義の規則は後のセクションで詳しく説明します。ここでは、下図のようなものだと思ってもらえば、それで十分です。





ここで大事なのは、mainクラスのstart()メソッドが特別なメソッドであるということです。


スクリプトの実行方法は後述しますが、CookerGXはRiceスクリプトの実行を指示されると、先ず、mainクラスのstart()メソッドを実行しようと試みます。

これがスクリプトにあれば実行しますし、無ければエラーを出して実行を中止します。


CookerGXでは、このmainクラスのstart()メソッドがスクリプト開始の起点となります。全てのスクリプトがこの形を備えなければいけません。

コメント

上記のスクリプトの例は、Riceスクリプトのたたき台としては十分ですが、本格的にスクリプトを組み上げる前に説明しておいた方が良い項目が幾つかあります。


その最初が"コメント"です。コメントとはプログラムの実行に関与しない、人間のための注釈です。

Riceは二種類のコメントを持ちますが、ここでは"単行コメント"だけを覚えれば十分です。"単行コメント"は下図のようになります。





要するに二重スラッシュ(//)以降から行末までは実行時に無視されるので何を書いてもいいということです。

end() メソッド

追加の説明項目の二つ目がend()メソッドです。先ず、end()メソッドの形を以下に示します。

1:

open method void end()

2:

endmethod

start()メソッドの対になるのがend()メソッドです。start()メソッドがスクリプト開始時に呼ばれるのに対して、end()メソッドはスクリプト終了時に呼び出されます。

ただし、start()メソッドの定義が必須なのに対して、end()メソッドのそれは任意です。

つまり、CookerGXはRiceスクリプトの実行の終了点で、mainクラスのend()メソッドを実行しようと試みます。これがスクリプトにあれば実行します、無ければ何もしません。

本当のたたき台

サンプルアーカイブ内の"sample_002.cgx"を以下に示します。"sample_001.cgx"に上記の項目を追加したものです。これが、以降のチュートリアルの為のたたき台になります。

1:

// mainクラスの定義

2:

class main

3:

// start()メソッドの定義。必須。

4:

open method void start()

5:

// 実際の処理をここへ記述。

6:

endmethod

7:
8:

// end()メソッドの定義。任意。

9:

open method void end()

10:

// 必要ならば処理をここへ記述。

11:

endmethod

12:

endclass

スクリプトの実行

スクリプトの実行方法を説明しておきます。


CookerGXが実行された状態で、ファイル選択ダイアログから.cgxファイルを選択することで、スクリプトを実行できます。


ファイル選択ダイアログを開く方法は、二つあります。

一つ目は、キー入力で開く方法です。Ctrl + R キーを押すとファイル選択ダイアログが開きます。

二つ目は、マウスのクリックで開く方法です。ウインドウの任意の場所を右クリックするととファイル選択ダイアログが開きます。


Next
Previous
Copyright © CookerGX All rights reserved.