用語集

当Wikiでの用語のまとめです。
Emueraの拡張に伴い独自の造語が増えてきたので覚え書きとして記述してみました。

起動モード

通常モード

Emueraを普通に起動したときのモードです。
EmueraXXXX.exeをダブルクリックして起動したときにこのモードになります。

解析モード

コマンドライン引数に解析したいファイル名を渡して起動したときのモードです。
EmueraXXXX.exeにファイルをドラッグ&ドロップして起動した場合にこのモードになります。
解析モードではドラッグ&ドロップしたファイルの文法チェックが行われます。
そのため開発中のファイルの文法間違いなどを確認できます。
ただし要素の文字列による指定のチェックのため、使用する予定のバリアントのCSVフォルダが必要になります。
使用する予定のバリアントのEmueraXXXX.exeにファイルをドラッグ&ドロップすればいいでしょう。
なお、1738gより解析モードのときに「ロード時にレポートを表示する」が有効になっている場合、
読み込まれたERBファイルごとにその中で使われている関数のリストを表示するようになりました。
関数が多すぎてログが流れてしまう場合は、コンフィグでログの行数を増やしてください。

デバッグモード

コマンドライン引数に-Debugを渡して起動したときのモードです。詳しくはデバッグモードをご覧ください。

ウインドウ・ダイアログ

メインウインドウ

通常起動時に最初に開くウインドウのことです。

メインコンソール

メインウインドウのうち、特に入出力を行う部分の名称です。

デバッグウインドウ

デバッグモードで起動したときに開くことが出来るウインドウのことです。

デバッグコンソール

デバッグウインドウで「コンソール」タブを選択したときに表示される入出力を行う部分の名称です。

設定ダイアログ

メインウインドウのメニューのヘルプ、設定から開くダイアログのことです。

クリップボードダイアログ

メインコンソールからCtrl+Cで開くダイアログのことです。

関数

命令

PRINTやWAITなどのことです。

関数

ERBスクリプト中で@~~文で名称を定義してCALL命令などで呼び出すもののことです。
式中で使える関数のうち、@~~文で名称を定義するものを含みます。

イベント関数

関数のうち、関数名がEVENTで始まりシステムから呼び出されるもののことです。
複数定義すれば全てが呼ばれます。

プリプロセッサ

ERBフォルダ内のファイルにおいて、他の命令より先に処理をする行のことです。
#で始まる行、もしくは[]で括られた語句からなる行がそれです。
#で始まる行は、属性や定義に分けられます。詳しくはそちらを参照してください。
[]で括られた語句からなる行は、特殊なブロックを表すものです。
詳しくはこちらのページを参照してください。

属性(プリプロセッサ)

関数に指定する#で始まる行で、関数の仕様や動作を決定するプリプロセッサです。
イベント関数の実行時の挙動を制御するための#PRI,#LATER,#SINGLE,#ONLY,
式中関数の種別を指定するための#FUNCTION,#FUNCTIONSがあります。

定義(プリプロセッサ)

#で始まる行で、変数の名前やその仕様を定義するプリプロセッサです。
関数に指定するものにはLOCAL,LOCALS変数の要素数を指定するための#LOCALSIZE,#LOCALSSIZE,
変数を定義するための#DIM,#DIMS, ERH中でDEFINEマクロを定義するための#DEFINEがあります。

式中で使える関数

式中から呼び出せる「関数」です。
「関数」には上記の関数だけでなく、後述する組み込み関数を含みます。
多くのプログラミング言語では単に「関数」と呼ばれるものです。

式中関数

式中で使える関数の略称です。
プログラミング言語における式中関数(匿名関数)やインライン関数とは無関係です。

組み込み関数

式中関数のうち、Emueraにもともと組み込まれていて@~~文による定義なしで使えるものです。
ABS(X)やGETTIME()などのことです。
ややこしいですが、上記の関数の定義には該当しません。
「式中で使える命令」と考えるとわかりやすいかもしれません。

ユーザー定義関数

ユーザーが定義した関数のことです。
ERBスクリプト中で@~~文で名称を定義してCALL命令などで呼び出すもののことです。
つまり上記の関数と同じ概念です。

#FUNCTION(S)関数

@~~文で名称を定義し、#FUNCTION(S)属性を持つものです。
関数かつ式中関数である関数です。

行・文・式

改行コードから次の改行コードまでのことです。
プログラミング関連では物理行とも呼ばれます。
ややこしいことにエディター関係ではこれを論理行と呼ぶことが多いです。

文あるいは論理行はEmueraにおける1つの処理単位です。
多くの文は、命令1つとその引数、あるいは変数と代入演算子と式からなります。
ERBでは1行につき1文という鉄則のため、行と文はほぼ同じ意味です。
当Wikiでも特に区別しません。

変数、定数、式中関数、非代入演算子、括弧とその組み合わせです。
代入演算子は代入文の最初の演算子としてのみ使用可能で式中では使えません。

数式

式の評価結果(演算結果)が数値になる式です。
例えば、A+B、STR == "あいう" などです。

文字列式

式の評価結果(演算結果)が文字列になる式です。
例えば、STR + STR:1、"あ" * 10 などです。

変数

擬似変数

RANDやCHARANUMのように変数のように記述できるが実態は変数ではないものです。
内部の動作としては式中関数に近い動きをしています。

配列変数

複数の要素を持つ変数です。
配列変数の要素数はVariableSize.csvで変更でき、通常はスクリプト中では増減しませんが、
一部ローカル変数については、スクリプト中で配列要素数を指定できます。

キャラクタ変数

キャラクタの状態を記録する変数です。
C言語などのchar型変数とは無関係です。
その性質上、ADDCHARAやDELCHARAによるキャラの増減に伴い、要素数が増減します。
NO:TARGETなど、配列変数と同じ形式で要素を指定するためにeramakerの解説では配列変数の一つと扱われていますが、当Wikiではキャラクタ変数と配列変数とを区別しています。

二重配列変数

キャラクタ変数かつ、配列変数である変数のことです。
CFLAG:TARGET:2のように、2つの引数をとります(省略可)。
キャラクタ変数なので第一引数はキャラNoを表わします。
また、キャラの増減に伴い第一次元の要素数が増減します。
第二次元の要素数はVariableSize.csvでのみ変更でき、スクリプト中では増減しません。

当Wikiではeramakerの仕様の説明を除き、"二重配列"という用語を使用しません。
代わりに"キャラクタ変数かつ配列変数"のような呼び方をします。

多次元配列変数

DITEMYTPEなどの二次元配列変数及びTAなどの三次元配列変数のことです。
DA:0:1やTA:1:2:3のように2つまたは3つの引数をとります。
多次元配列変数の要素数はVariableSize.csvでのみ変更でき、スクリプト中で増減しません。
また、多次元配列変数の引数は省略できません。

キャラクタ多次元配列変数

キャラクタ変数かつ、多次元配列変数である変数のことです。
CFLAG:TARGET:0:2のように、3つの引数をとります(省略不可)。
キャラクタ変数なので第一引数はキャラNoを表わします。
また、キャラの増減に伴い第一次元の要素数が増減します。
第二次元・第三次元の要素数はVariableSize.csvでのみ変更でき、スクリプト中では増減しません。

ver1807現在、この変数に当てはまるものはCDFLAGのみです。
詳しくはCDFLAGをご覧ください。

ローカル変数

LOCALやLOCALSやプライベート変数など、関数(関数名)ごとに用意される変数です。
プライベート変数については別項を参照してください。
プライベート変数以外のLOCALやLOCALSに関しては、実際にはいわゆるローカル変数ではなく、
"LOCAL@関数名"や"LOCALS@関数名"という名のpublic staticな変数です。
関数を抜けても値は保持され関数の外からでも代入、参照できてしまいます。
また、再帰呼び出しのように複数回呼んだ場合にも値が共有されてしまいます。

広域変数

LOCALやLOCALSやプライベート変数などを除くほとんどの変数が属する、すべての関数で値が共有の変数です。
一般的なプログラミング言語におけるグローバル変数の概念ともいえます。
また、ERH中で#DIMもしくは#DIMSを用いることで広域変数を定義することができます。
詳しくはヘッダーファイル(ERH)のページを参照してください。

グローバル変数

異なるセーブデータ間で値を共有することができる変数です。グローバル変数も広域変数に含まれます。
通常の変数とはセーブロードや初期化のタイミングが異なります。
Emueraのグローバル変数はこれは一般的なプログラミング言語におけるグローバル変数の概念とは無関係です。

プライベート変数

関数(関数名)ごとに#DIMもしくは#DIMSによって定義される変数です。
これらもローカル変数でありますので、関数ごとに別個のものです。
ただし、同じローカル変数とされているLOCALなどとは異なり、@関数名などを使っての関数の外からの代入、参照はできません。
詳しくはユーザー定義の変数のページを参照してください。