文はMokkosuの最上位レベルの命令です。 文はソースファイルの上から順番に評価されていきます。 文は必ずセミコロンで終わります。

do文

do 式;
式;

do文は値が()になる式を評価して結果を捨てます。 キーワードのdoは省略することができます。

let文

基本形

let パターン = 式;

let文は式を評価してその結果をパターンにマッチさせます。 パターンマッチに失敗した場合、実行時エラーになります。

拡張形式

let パターン パターン1 パターン2 ... = 式;

上の形式のlet文は以下のlet文と同じ意味です。

let パターン = \パターン1 パターン2 ... -> 式;

fun文

基本形

fun 関数名 パターン1 パターン2 ... = 式;

fun式は(再帰)関数を定義する際に用います。

特殊形式

fun 関数名 = ブロック式;

関数の本体がブロック式の場合、引数を省略することができます。

相互再帰

fun 関数名1 パターン11 パターン12 ... = 式1
and 関数名2 パターン21 パターン22 ... = 式2
...
and 関数名n パターンn1 パターンn2 ... = 式n;

相互再帰させるときは、andで区切って定義を並べます。

type文

単相型

type 型名 = タグ1(引数型11, 引数型12, ...) | タグ2(引数型21, 引数型22, ...) | ...;

type文は列挙したタグの値から構成される型を定義します。 タグはオプションで引数を持たせることができます。 引数が0個のタグを定義する場合は、括弧は省略します。

多相型

type 型名 <型パラメータ1, 型パラメータ2, ...>  =
  タグ1(引数型11, 引数型12, ...) | タグ2(引数型21, 引数型22, ...) | ...;

type文には型パラメータを持たせることができます。

相互再帰

type 型名1 <型パラメータ11, ...> = タグ11(引数型111, ...) | ...
and  型名2 <型パラメータ21, ...> = タグ21(引数型211, ...) | ...;

型の定義を相互参照する場合はandで区切って指定します。

include文

include "ファイル名";

include文は指定したファイルを読み込み展開します。 ファイル名が./から始まる場合は相対パスとして認識されます。

import文

import "DLL名";

import文は指定したDLLをプログラムに読み込みます。

using文

using 名前空間;

using文は指定した.NETの名前空間を修飾なしで使えるように指定する文です。

__define文

__define "シンボル";

__define文は指定したシンボルを定義状態にします。 シンボルを定義することでコンパイラの動作を変更することができます。

利用可能なシンボルには以下のものがあります。

シンボル 役割
CONSOLE_APPLICATION コンソールアプリケーションとしてコンパイルする
HIDE_TYPE 型の表示を抑制する
SHOW_PARSE_RESULT 構文解析・型推論結果を表示する
SHOW_CLOSURE_RESULT クロージャ変換の結果を表示する

__undefine文

__undefine "シンボル";

__undefine文は指定したシンボルを未定義状態にします。