콘텐츠로 이동

言語リファレンス

이 콘텐츠는 아직 번역되지 않았습니다.

このリファレンスは、現在の Sobakasu で何が書けるか、コンパイル時にどのような規則があるか、実行するとどのように動くかを調べるための文書です。

Sobakasu を初めて知る人でも読めるように、言語固有の概念はできるだけ最初に説明します。分からない用語がある場合は 用語集 も参照してください。

設計上の理由や、採用しなかった案については ADR に分けています。

状態変数は state ブロックに、VRChat のイベント処理は behavior ブロックに記述します。

state {
count: i32 = 0;
}
function increment(value: i32) -> i32 {
value + 1
}
behavior {
on interact(state) {
state.count = increment(state.count);
}
}

状態変数は、イベント処理が終わった後も値を保持する変数です。上の例では、interact イベントが発生するたびに count が 1 増えます。

state.count の . は値が持つメンバーへのアクセスです。一方、foo::Bar の :: はモジュールや型などを含む修飾名に使います。

現在は function、implementation、mutable、public、module、language item を使用します。以前使われていた fn、impl、mut、pub、mod、lang は現行構文ではありません。

static も現在の関数・メソッド宣言では使用しません。型に関連付ける関数は implementation の中へ記述します。

言語処理系そのものを確認したい場合は、次のソースコードを参照できます。