DefLang Document


今回はDefLangについて解説します。
[]は文字列を表しており、使うときに[]は必要ありません。
0. プログラムの書き方
1. echo
2. def
3. vew(廃止)
4. 変数
5. calc(非推奨)
6. rettofir(非推奨)
7. out
8. geturl
9. preload
10. sleep
11. 関数
12. for文
13. drawline
14. fillrect
15. fillarc
16. genimg
17. if文
18. goto
19. 関数を定義する

0. プログラムの書き方

DefLangのプログラムは必ずprogram main;からend programの間に書きます。
program main;
echo:test;
end program

1. echo

echo:[メッセージ]; echoコマンドはメッセージを表示します。

2. def

def:[変数名]:[ファイル場所か文字列か式か配列かオブジェクト]:[モード]; 変数を定義します。
モードにはnormal,calc,array,objectが指定可能です。
normalモードは普通に変数を定義します。
calcモードは式の答えを変数に代入します。
arrayモードは配列を定義します。
配列のフォーマットは value,値,123 です。
また、配列は {[配列名].[番号]} で参照可能です。
objectモードはオブジェクトを定義します。
オブジェクトのフォーマットは key=value,名前=値です。
また、オブジェクトは {[オブジェクト名].[名前]} で参照可能です。
fileモードはファイル内容を変数に代入します。

3. vew(廃止)

vewは2.0.0で廃止されました。使いたい場合は1.2.0をインストールして下さい。 vew:[変数名]; 変数の内容を画面に表示します。
存在しない変数を指定するとUNDEFINED ERRORが返り、停止します。

4. 変数

変数は %[変数名]% で参照可能です。
配列を指定すると value,value2の形式で返します。
オブジェクトを指定すると key=value,key2=value2 の形式で返します。

5. calc(非推奨)

calc:[式]; 画面に計算結果を表示します。

6. rettofir(非推奨)

rettofir; プログラムの最初に戻り、プログラムをずっと実行します。
また、ctrettofirという変数を生成します。
BREAKエラーで9000回ほどで止まります。

7. out

out:[ファイル名]:[内容]; ファイルを作成し書き込みます。

8. geturl

geturl:[URL]:[ファイル名]; 外部からファイルをダウンロードして名前をつけて保存します。

9. preload

preload:[ファイル名]; 変数をdefを使わずに定義します。
preloadの専用ファイルのフォーマットは key:value;名前:値; です。

10. sleep

sleep:[秒数]; 指定した秒数だけプログラムを停止します。

11. 関数

sin([数字])
cos([数字])
tan([数字])
calc([式])
deg2rad([角度])
rad2deg([ラジアン])
上から順にサイン、コサイン、タンジェントです。
calc関数は式の答えを返します。
deg2rad関数は角度をラジアンに変換して返します。
rad2deg関数はラジアンを角度に変換して返します。

12. for文

for:[変数]:[開始値]:[終了値]; [コード] next; forからnextの間に書いたコードをforで指定した分だけ実行します。

13. drawline

drawline:[x1]:[y1]:[x2]:[y2]:[色]; 線を引きます。
色は英語かhex,rgb,rgbaで指定できます。

14. fillrect

fillrect:[x]:[y]:[横幅]:[縦幅]:[色]; 塗り潰された四角形を描きます。

15. fillarc

fillarc:[x]:[y]:[半径]:[色]; x座標とy座標は円の中心位置になります。

16. genimg

genimg:[.pngを省いたファイル名]; 画像をpngで生成します。

17. if文

if:[値1]:[条件演算子]:[値2]:[ラインナンバー]; 条件演算子には==(同じ),!=(違う),>=(大なりイコール),<=(小なりイコール),>(大なり),<(小なり)が指定可能です。
ラインナンバーは最初のコマンドを1として数えます。

18. goto

goto:[ラインナンバー]; ラインナンバーの位置に移動します。
if文と同じくラインナンバーは最初のコマンドを1として数えます。

19. 関数を定義する

#function <[名前]> begin{
[DefLangのプログラム]
}end
[関数名]:[引数]...;
関数を定義します。引数は変数argvから取得可能です。