Difference between revisions of "Emuera/EmuDic"

From Era Wiki
Jump to: navigation, search
(imported japanese page)
 
(imported from the right page)
Line 1: Line 1:
−
= 一般 =
+
= 用語集 =
−
== 行末コメント ==
+
当Wikiでの用語のまとめです。</br>
 +
Emueraの拡張に伴い独自の造語が増えてきたので覚え書きとして記述してみました。</br>
  
−
A = B ;AにBを代入
+
==起動モード==
 +
===通常モード===
 +
Emueraを普通に起動したときのモードです。</br>
 +
EmueraXXXX.exeをダブルクリックして起動したときにこのモードになります。
  
−
このように行の末尾にコメントを挿入できます</br>
+
===解析モード===
−
ただし、一部例外があり、「PRINT」命令のように引数が単純文字列の命令の場合にはコメント化されず文字列の一部と評価されます
+
コマンドライン引数に解析したいファイル名を渡して起動したときのモードです。</br>
 +
EmueraXXXX.exeにファイルをドラッグ&ドロップして起動した場合にこのモードになります。</br>
 +
解析モードではドラッグ&ドロップしたファイルの文法チェックが行われます。</br>
 +
そのため開発中のファイルの文法間違いなどを確認できます。</br>
 +
ただし要素の文字列による指定のチェックのため、使用する予定のバリアントのCSVフォルダが必要になります。</br>
 +
使用する予定のバリアントのEmueraXXXX.exeにファイルをドラッグ&ドロップすればいいでしょう。</br>
 +
なお、1738gより解析モードのときに「ロード時にレポートを表示する」が有効になっている場合、</br>
 +
読み込まれたERBファイルごとにその中で使われている関数のリストを表示するようになりました。</br>
 +
関数が多すぎてログが流れてしまう場合は、コンフィグでログの行数を増やしてください。
  
−
PRINT foobar;ほげほげ
+
===デバッグモード===
 +
コマンドライン引数に-Debugを渡して起動したときのモードです。詳しくは[[Emuera/debug|デバッグモード]]をご覧ください。
  
−
この場合、「foobar;ほげほげ」がPRINTされます
+
==ウインドウ・ダイアログ==
 +
===メインウインドウ===
 +
通常起動時に最初に開くウインドウのことです。
  
−
== 行の連結 ==
+
===メインコンソール===
 +
メインウインドウのうち、特に入出力を行う部分の名称です。
  
−
{
+
===デバッグウインドウ===
−
DIM CONST HOGE =
+
デバッグモードで起動したときに開くことが出来るウインドウのことです。
−
1,2,3,4
 
−
}
 
  
−
と書くと「#DIM CONST HOGE = 1,2,3,4」と解釈されます</br>
+
===デバッグコンソール===
−
'{'、'}'の行にはホワイトスペース以外の他の文字が存在してはなりません</br>
+
デバッグウインドウで「コンソール」タブを選択したときに表示される入出力を行う部分の名称です。
−
改行記号のある位置には半角スペースが補われます</br>
 
−
つまり関数名・変数名の途中で行を分割することはできないほか、</br>
 
−
PRINTなどを分割すると表示文字列の中に改行だった半角スペースが含まれます</br>
 
−
Emueraの文法解釈において行連結処理はコメントの解釈より先に行われます</br>
 
−
つまり
 
  
−
{
+
===設定ダイアログ===
−
#DIM CONST HOGE =
+
メインウインドウのメニューのヘルプ、設定から開くダイアログのことです。
−
1,2,3,4 ;コメント
 
−
,5,6,7,8
 
−
}
 
  
−
は「#DIM CONST HOGE = 1,2,3,4 ;コメント ,5,6,7,8」となり、</br>
+
===クリップボードダイアログ===
−
「,5,6,7,8」は行末コメントの一部とみなされ無視されます
+
メインコンソールからCtrl+Cで開くダイアログのことです。
  
−
== 特別なコメント行 ==
+
==関数==
−
=== ;!; ===
+
===命令===
−
Emuera、eramakerのいずれでも、;で始まる行はコメント行とみなされますが、Emueraは;!;で始まる行はコメントではなく有効な行とみなします。</br>
+
PRINTやWAITなどのことです。
−
eramakerでは実行してほしくない文を記述する際に使ってください。</br>
 
−
例えば@SHOWSHOPに以下のスクリプトを加えるとEmueraでの動作を禁止できます。</br>
 
  
−
;!;PRINTW このスクリプトはEmueraでは実行できません
+
===関数===
−
;!;QUIT
+
ERBスクリプト中で@~~文で名称を定義してCALL命令などで呼び出すもののことです。</br>
 +
式中で使える関数のうち、@~~文で名称を定義するものを含みます。
  
−
また、[SKIPSTART]や[SKIPEND]と併用することで、以下のスクリプトのようにEmuera以外での動作を禁止できます。</br>
+
===イベント関数===
−
Emuera以外では実行してほしくない文を記述する際に使ってください。
+
関数のうち、関数名がEVENTで始まりシステムから呼び出されるもののことです。</br>
 +
複数定義すれば全てが呼ばれます。
  
−
;!;[SKIPSTART]
+
===プリプロセッサ===
−
PRINTW このスクリプトはEmuera以外では実行できません
+
ERBフォルダ内のファイルにおいて、他の命令より先に処理をする行のことです。</br>
−
QUIT
+
#で始まる行、もしくは[]で括られた語句からなる行がそれです。</br>
−
;!;[SKIPEND]
+
#で始まる行は、属性や定義に分けられます。詳しくはそちらを参照してください。</br>
 +
[]で括られた語句からなる行は、特殊なブロックを表すものです。</br>
 +
詳しくは[[Emuera/exfunc#h3-E7.89.B9.E6.AE.8A.E3.81.AA.E3.83.96.E3.83.AD.E3.83.83.E3.82.AF.E3.82.92.E8.A1.A8.E3.81.99.E8.A1.8C|こちら]]のページを参照してください。</br>
  
−
=== ;#; ===
+
===属性(プリプロセッサ)===
−
<nowiki>;#;</nowiki>で始まる行はデバッグモード時のみ実行されます。</br>
+
関数に指定する#で始まる行で、関数の仕様や動作を決定するプリプロセッサです。</br>
−
非デバッグモード時ではコメント行と見なされ実行されません。</br>
+
イベント関数の実行時の挙動を制御するための#PRI,#LATER,#SINGLE,#ONLY,</br>
−
ただし、DEBUG系命令は元々非デバッグモード時には無視されるので、;#;を行頭に付ける必要はありません。</br>
+
式中関数の種別を指定するための#FUNCTION,#FUNCTIONSがあります。</br>
−
同様にデバッグ変数も非デバッグモード時には空文字列又は0のため、エラーの心配はありません。</br>
 
−
デバッグモードについては[debug こちら]を参照してください。
 
  
−
== キャラクタ配列 ==
+
===定義(プリプロセッサ)===
−
eramakerではおそらくキャラクタ作成用の配列が100個しか用意されていません。</br>
+
#で始まる行で、変数の名前やその仕様を定義するプリプロセッサです。</br>
−
そのため、chara3.csvとchara03.csvとchara3B.csvでそれぞれ別のキャラを定義しても一人しか有効になりません。</br>
+
関数に指定するものにはLOCAL,LOCALS変数の要素数を指定するための#LOCALSIZE,#LOCALSSIZE,</br>
−
Emueraではキャラクタはメモリが許す限りいくらでも定義できます。</br>
+
変数を定義するための#DIM,#DIMS, ERH中でDEFINEマクロを定義するための#DEFINEがあります。</br>
−
また、"chara*.csv"に該当すればchara101.csv、charaABC.csvなどどんなファイルでも読みに行きます。</br>
 
−
キャラの番号が重複し、ADDCHARA又はADDSPCHARAの際に複数の候補がある場合、先に読み込まれた方のみが有効になります。
 
  
−
== 整数型の値の範囲 ==
+
===式中で使える関数===
−
eramakerで扱える整数は32ビット符号付整数、すなわち-2147483648~2147483647の範囲です。</br>
+
式中から呼び出せる「関数」です。</br>
−
Emueraでは吉里吉里と同じく64ビット符号付整数、-9223372036854775808~9223372036854775807の範囲の値を扱います。
+
「関数」には上記の関数だけでなく、後述する組み込み関数を含みます。</br>
 +
多くのプログラミング言語では単に「関数」と呼ばれるものです。
  
 +
===式中関数===
 +
式中で使える関数の略称です。</br>
 +
プログラミング言語における式中関数(匿名関数)やインライン関数とは無関係です。
  
−
== 配列変数への一括代入 ==
+
===組み込み関数===
 +
式中関数のうち、Emueraにもともと組み込まれていて@~~文による定義なしで使えるものです。</br>
 +
ABS(X)やGETTIME()などのことです。</br>
 +
ややこしいですが、上記の関数の定義には該当しません。</br>
 +
「式中で使える命令」と考えるとわかりやすいかもしれません。
  
−
A:10 = 1,2,3
+
===ユーザー定義関数===
−
DA:0:0 = 1,2,3
+
ユーザーが定義した関数のことです。</br>
 +
ERBスクリプト中で@~~文で名称を定義してCALL命令などで呼び出すもののことです。</br>
 +
つまり上記の関数と同じ概念です。
  
−
上のように書いた場合、A:10~A:12にそれぞれ1,2,3の値が代入されます</br>
+
===#FUNCTION(S)関数===
−
下のような多次元配列では、DA:0:0~DA:0:2にそれぞれ1,2,3の値が代入されます</br>
+
@~~文で名称を定義し、#FUNCTION(S)属性を持つものです。</br>
−
DA:0:0~DA:0:99の次にDA:1:0に代入することはなく、配列外参照エラーになります</br>
+
関数かつ式中関数である関数です。
−
ただし、複合代入演算には使えません(A += 1,2,3 などは不可)。</br>
 
−
また、文字列型配列変数への代入に一括代入を用いる場合、[exetc#h4-.E6.96.87.E5.AD.97.E5.88.97.E5.BC.8F.E3.82.92.E7.94.A8.E3.81.84.E3.81.9F.E6.96.87.E5.AD.97.E5.88.97.E5.A4.89.E6.95.B0.E3.81.B8.E3.81.AE.E4.BB.A3.E5.85.A5 文字列式を用いた代入]を行わなくてはなりません
 
  
−
;STR:20に「いちご,メロン,ブルーハワイ」という文字列が代入される
 
−
STR:20 = いちご,メロン,ブルーハワイ
 
−
;STR:20~STR22にそれぞれ「いちご」「メロン」「ブルーハワイ」が代入される
 
−
STR:20 '= "いちご", "メロン", "ブルーハワイ"
 
  
 +
==行・文・式==
 +
===行===
 +
改行コードから次の改行コードまでのことです。</br>
 +
プログラミング関連では物理行とも呼ばれます。</br>
 +
ややこしいことにエディター関係ではこれを論理行と呼ぶことが多いです。</br>
  
−
== FORM構文を用いた文字列変数への代入 ==
+
===文===
−
文字列変数への代入の際、PRINTFORMと同じ形式で代入する文字列を指定できます。
+
文あるいは論理行はEmueraにおける1つの処理単位です。</br>
 +
多くの文は、命令1つとその引数、あるいは変数と代入演算子と式からなります。</br>
 +
ERBでは1行につき1文という鉄則のため、行と文はほぼ同じ意味です。</br>
 +
当Wikiでも特に区別しません。
  
−
SAVESTR:0 = %RESULTS%
+
===式===
 +
変数、定数、式中関数、非代入演算子、括弧とその組み合わせです。</br>
 +
代入演算子は代入文の最初の演算子としてのみ使用可能で式中では使えません。
  
−
この文でSAVESTR:0にRESULTSの中身を代入することができます。</br>
+
===数式===
−
同じ文はeramakerではSAVESTR:0に%RESULTS%という文字列そのものを代入したことになります。</br>
+
式の評価結果(演算結果)が数値になる式です。</br>
−
Emueraで%RESULTS%という文字列そのものを代入したい場合、以下のように書いてください。
+
例えば、A+B、STR == "あいう" などです。
  
−
SAVESTR:0 = \%RESULT\%
+
===文字列式===
 +
式の評価結果(演算結果)が文字列になる式です。</br>
 +
例えば、STR + STR:1、"あ" * 10 などです。
  
−
\記号の直後の文字はシステム記号として扱われません。</br>
+
==変数==
−
\記号自体を文字列に含めたい場合は\\としてください。
+
===擬似変数===
 +
RANDやCHARANUMのように変数のように記述できるが実態は変数ではないものです。</br>
 +
内部の動作としては式中関数に近い動きをしています。
  
−
あまりないケースですが、eramakerとEmueraで同じ動作をさせたい場合は以下のように書く必要があります。</br>
+
===配列変数===
 +
複数の要素を持つ変数です。</br>
 +
配列変数の要素数は!VariableSize.csvで変更でき、通常はスクリプト中では増減しませんが、</br>
 +
一部ローカル変数については、スクリプト中で配列要素数を指定できます。
  
−
;!;SAVESTR:0 = \%RESULT\%
+
===キャラクタ変数===
−
;!;[SKIPSTART]
+
キャラクタの状態を記録する変数です。</br>
−
SAVESTR:0 = %RESULTS%
+
C言語などのchar型変数とは無関係です。</br>
−
;!;[SKIPEND]
+
その性質上、ADDCHARAやDELCHARAによるキャラの増減に伴い、要素数が増減します。</br>
 +
NO:TARGETなど、配列変数と同じ形式で要素を指定するためにeramakerの解説では配列変数の一つと扱われていますが、当Wikiではキャラクタ変数と配列変数とを区別しています。</br>
  
 +
===二重配列変数===
 +
キャラクタ変数かつ、配列変数である変数のことです。</br>
 +
CFLAG:TARGET:2のように、2つの引数をとります(省略可)。</br>
 +
キャラクタ変数なので第一引数はキャラNoを表わします。</br>
 +
また、キャラの増減に伴い第一次元の要素数が増減します。</br>
 +
第二次元の要素数は!VariableSize.csvでのみ変更でき、スクリプト中では増減しません。</br>
 +
</br>
 +
当Wikiではeramakerの仕様の説明を除き、"二重配列"という用語を使用しません。</br>
 +
代わりに"キャラクタ変数かつ配列変数"のような呼び方をします。
  
−
== 文字列式を用いた文字列変数への代入 ==
+
===多次元配列変数===
−
ver1813以降のEmueraでは新たに、代入演算子'=と文字列式を用いて文字列変数への代入を行うことができます。
+
DITEMYTPEなどの二次元配列変数及びTAなどの三次元配列変数のことです。</br>
 +
DA:0:1やTA:1:2:3のように2つまたは3つの引数をとります。</br>
 +
多次元配列変数の要素数は!VariableSize.csvでのみ変更でき、スクリプト中で増減しません。</br>
 +
また、多次元配列変数の引数は省略できません。
  
−
;「STR = あいう」と同様
+
===キャラクタ多次元配列変数===
−
STR '= "あいう"
+
キャラクタ変数かつ、多次元配列変数である変数のことです。</br>
−
;「STR = %TSTR:0%いろは」と同様
+
CFLAG:TARGET:0:2のように、3つの引数をとります(省略不可)。</br>
−
STR '= TSTR:0 + "いろは"
+
キャラクタ変数なので第一引数はキャラNoを表わします。</br>
 +
また、キャラの増減に伴い第一次元の要素数が増減します。</br>
 +
第二次元・第三次元の要素数は!VariableSize.csvでのみ変更でき、スクリプト中では増減しません。</br>
 +
</br>
 +
ver1807現在、この変数に当てはまるものは[[Emuera/exvar#h5-CDFLAG|CDFLAG]]のみです。</br>
 +
詳しくは[[Emuera/exvar#h5-CDFLAG|CDFLAG]]をご覧ください。
  
 +
===ローカル変数===
 +
LOCALやLOCALSやプライベート変数など、関数(関数名)ごとに用意される変数です。</br>
 +
プライベート変数については別項を参照してください。</br>
 +
プライベート変数以外のLOCALやLOCALSに関しては、実際にはいわゆるローカル変数ではなく、</br>
 +
"LOCAL@関数名"や"LOCALS@関数名"という名のpublic staticな変数です。</br>
 +
関数を抜けても値は保持され関数の外からでも代入、参照できてしまいます。</br>
 +
また、再帰呼び出しのように複数回呼んだ場合にも値が共有されてしまいます。
  
−
== 文字列による配列変数の要素の指定 ==
+
===広域変数===
−
以下の変数について、引数を*.csvで定義した文字列にして呼び出すことができます。</br>
+
LOCALやLOCALSやプライベート変数などを除くほとんどの変数が属する、すべての関数で値が共有の変数です。</br>
−
Emueraの新規変数についての詳細は[exvar Emueraで追加された拡張文法 - 定数・変数]をご覧ください。
+
一般的なプログラミング言語におけるグローバル変数の概念ともいえます。</br>
 +
また、ERH中で#DIMもしくは#DIMSを用いることで広域変数を定義することができます。</br>
 +
詳しくは[[Emuera/ERH|ヘッダーファイル(ERH)]]のページを参照してください。
  
−
ITEM (item.csv)
+
===グローバル変数===
−
ITEMSALES (item.csv)
+
異なるセーブデータ間で値を共有することができる変数です。グローバル変数も広域変数に含まれます。</br>
−
LOSEBASE (base.csv)
+
通常の変数とはセーブロードや初期化のタイミングが異なります。</br>
−
BASE (base.csv)
+
Emueraのグローバル変数はこれは一般的なプログラミング言語におけるグローバル変数の概念とは無関係です。
−
MAXBASE (base.csv)
 
−
ABL (abl.csv)
 
−
TALENT (talent.csv)
 
−
EXP (exp.csv)
 
−
MARK (mark.csv)
 
−
RELATION (chara*.csv)
 
−
UP (palam.csv)
 
−
DOWN (palam.csv)
 
−
PALAM (palam.csv)
 
−
JUEL (palam.csv)
 
−
GOTJUEL (palam.csv)
 
−
STAIN (stain.csv)
 
−
SOURCE (source.csv)
 
−
EX (ex.csv)
 
−
NOWEX (ex.csv)
 
−
TEQUIP (tequip.csv)
 
−
EQUIP (equip.csv)
 
−
FLAG (flag.csv)
 
−
TFLAG (tflag.csv)
 
−
CFLAG (cflag.csv)
 
−
STR (strname.csv)
 
−
SAVESTR (savestr.csv)
 
−
以下はEmueraから追加された変数
 
−
ITEMPRICE (item.csv)
 
−
DOWNBASE (base.csv)
 
−
CUP (palam.csv)
 
−
CDOWN (palam.csv)
 
−
TCVAR (tcvar.csv)
 
−
TSTR (tstr.csv)
 
−
CSTR (cstr.csv)
 
−
CDFLAG (cdflag1.csv, cdflag2.csv)
 
−
GLOBAL (global.csv)
 
−
GLOBALS (globals.csv)
 
  
−
例えばabl.csvに"2,技巧"という定義があれば、以下の4つの行は同じ意味になります。
+
===プライベート変数===
−
 
+
関数(関数名)ごとに#DIMもしくは#DIMSによって定義される変数です。</br>
−
ABL:技巧 += 1
+
これらもローカル変数でありますので、関数ごとに別個のものです。</br>
−
ABL:2 += 1
+
ただし、同じローカル変数とされているLOCALなどとは異なり、@関数名などを使っての関数の外からの代入、参照はできません。</br>
−
ABL:"技巧" += 1
+
詳しくは[[Emuera/UserVars|ユーザー定義の変数]]のページを参照してください。
−
ABL:(ABLNAME:2) += 1
 
−
 
 
−
RELATIONについてはNAME、CALLNAMEのいずれでも指定できます。</br>
 
−
同名で複数の定義がある場合、先に定義されている方が呼ばれます。</br>
 
−
例えばabl.csvに"2,技巧"と"4,技巧"があり、"2,技巧"の方が前の行で定義されているならば、"ABL:技巧"は"ABL:2"になります。</br>
 
−
文字列は式や変数でも可能です。その場合は以下のように()を付けてください。
 
−
 
 
−
ABL:(RESULTS:0) = ABL:(RESULTS:0) + 1
 
−
 
 
−
()を省略した場合、アイテム名と変数名が同一になる場合があります。その場合は変数が優先されます。</br>
 
−
例えばabl.csvに"0,ローター"という定義がある場合、
 
−
 
 
−
@HOGE
 
−
#DIM ローター, 0
 
−
ローター = 1
 
−
PRINTFORML {ABL:ローター}
 
−
 
 
−
この場合、0番目のABLではなく1番目のABLであると解釈されます。</br>
 
−
同様に、アイテム名が数値の場合、数値としての解釈が優先されます。</br>
 
−
例えばabl.csvに"0,10"という定義をしABL:10を参照した場合は0番目のABLとは解釈されず10番目のABLとなります。</br>
 
−
 
 
−
これはchara*.csv内の定義においても使用できます。</br>
 
−
例えばabl.csvに"2,技巧"という定義があれば、以下の2つの行は同じ意味になります。
 
−
 
 
−
能力,2,2
 
−
能力,技巧,2
 
−
 
 
−
ただし、相性(RELATION)には使えません。</br>
 
−
chara*.csvを読んでいる段階ではシステムがcharaの名前とNOの対応を把握していないためです。
 
−
 
 
−
== 書式付文字列(FORM構文)拡張 ==
 
−
PRINTFORMなどでつかわれる書式付文字列のうち、{}、%%に表示桁数(文字数)を指定できます。</br>
 
−
{変数・数式等, 表示桁数, 揃え(LEFT or RIGHT)}、%変数、文字列式等, 表示桁数, 揃え(LEFT or RIGHT)%という形式で指定します。</br>
 
−
文字数は全角文字を2文字と数えます。</br>
 
−
表示桁数(文字数)に足りない部分は半角スペースが追加されます。</br>
 
−
通常は右揃えですが、キーワードLEFTを指定すると左揃えになります。</br>
 
−
指定された表示桁数よりもとの桁数の方が大きい場合、そのまま表示します。
 
−
 
 
−
A = 123456
 
−
STR:0 = あいう
 
−
PRINTFORML [{A}]
 
−
PRINTFORML [{A,10}]
 
−
PRINTFORML [{A,10,LEFT}]
 
−
PRINTFORML [%STR:0%]
 
−
PRINTFORML [%STR:0,10%]
 
−
PRINTFORML [%STR:0,10,LEFT%]
 
−
PRINTFORML [{A,2}]
 
−
PRINTFORML [%STR:0,2%]
 
−
;結果
 
−
[123456]
 
−
[    123456]
 
−
[123456    ]
 
−
[あいう]
 
−
[    あいう]
 
−
[あいう    ]
 
−
[123456]
 
−
[あいう]
 
−
 
 
−
 
 
−
== 文字列式中での書式付文字列(FORM構文)の使用 ==
 
−
PRINTSやユーザー定義の式中関数の引数といった文字列式中でFORM構文を使用するとエラーになります。</br>
 
−
そのため文字列式中で書式付文字列を使用する場合、文字列式中で定文字列を使うときに"~"を使用するのと同じように</br>
 
−
@"~"を使用します。
 
−
また、@"~"の中の文字列が\@~\@を用いた三項演算子による記載のみである場合、@"~"を省略して直接\@~\@と書くことができます</br>
 
−
 
 
−
正しい例
 
−
;代入はFORM構文
 
−
STR:0 = あいう
 
−
;加算は文字列式
 
−
RESULTS += STR:0
 
−
;文字列式に定文字列を使用する例
 
−
RESULTS += "えお"
 
−
;文字列式にFORM構文を使用する例
 
−
PRINTS @"%RESULTS%かきくけこ"
 
−
 
 
−
;以下の4行はすべて同じである
 
−
PRINTS STR:0 + "!"
 
−
PRINTFORM %STR:0%!
 
−
PRINTS @"%STR:0%!"
 
−
PRINTFORM %STR:0 + "!"%
 
−
間違った例
 
−
;中身が「RESULTS」になる
 
−
STR:0 = RESULTS
 
−
;エラーが出る
 
−
RESULTS += えお
 
−
;エラーが出る
 
−
RESULTS += %STR:0%
 
−
;「@"」と「"」も表示される
 
−
PRINTFORM @"%RESULTS%かきくけこ"
 
−
 
 
−
 
 
−
== INPUTS系でのマクロ構文の使用 ==
 
−
INPUTSやそれに類する入力受付命令で、マクロ式を用いることができます。</br>
 
−
マクロの書式については[howto 利用方法]のマクロの項目を確認してください。</br>
 
−
マクロ構文を使わず、単なる文字列として()を使用する場合、\を用いてエスケープしてください。
 

Revision as of 16:08, 9 April 2019

用語集

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

起動モード

通常モード

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

解析モード

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

デバッグモード

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

ウインドウ・ダイアログ

メインウインドウ

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

メインコンソール

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

デバッグウインドウ

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

デバッグコンソール

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

設定ダイアログ

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

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

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

関数

命令

PRINTやWAITなどのことです。

関数

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

イベント関数

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

プリプロセッサ

ERBフォルダ内のファイルにおいて、他の命令より先に処理をする行のことです。

  1. で始まる行、もしくは[]で括られた語句からなる行がそれです。
  2. で始まる行は、属性や定義に分けられます。詳しくはそちらを参照してください。

[]で括られた語句からなる行は、特殊なブロックを表すものです。
詳しくはこちらのページを参照してください。

属性(プリプロセッサ)

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

定義(プリプロセッサ)

  1. で始まる行で、変数の名前やその仕様を定義するプリプロセッサです。

関数に指定するものには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などとは異なり、@関数名などを使っての関数の外からの代入、参照はできません。
詳しくはユーザー定義の変数のページを参照してください。