識別子

識別子とは、変数や関数、クラス名に割り当てる名前のことです。


taiseiue | 2023-09-08

AliceScriptの変数名や関数名、クラス名などの識別子は、基本的に好きな名前をつけることができますが、次のルールを守る必要があります。

  1. AliceScriptのキーワード(stringboolなど)は使用できない
  2. サロゲートを使用する文字(2バイトに収まらない文字)は使用できない
  3. 関数名や変数名は、次の正規表現にマッチする必要がある

正規表現
^[\p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Lo}\p{Nl}][\p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Lo}\p{Nl}\p{Mn}\p{Mc}\p{Pc}\p{Nd}\p{Cf}\.]*$
この仕様は、Unicode® Standard Annex #31におおむね準拠しています。

また、識別子に空の文字列を使用することはできません。

AliceScript
var hoge = 0;//OK

var hoge_2 = 0;//OK

var void = null;//NG(1に違反する)

var 𩸽 = "ほっけ";//NG(2に違反する)

var _hoge = 0;//NG(3に違反する)

var 1_data = false;//NG(3に違反する)

var 🙂 = true;//NG(2と3に違反する)

AliceScriptには、識別子に一文字目から使用できる文字と、二文字目以降で使用できる文字があります。

一文字目から使用できる文字

識別子の一文字目には、以下のUnicodeクラスに所属する文字が使用できます。

クラス名 説明
Lu 大文字
Ll 小文字
Lt タイトル文字
Lm 文字修飾子
Lo その他の文字
Nl 文字として扱われる数字

二文字目以降で使用できる文字

識別子の二文字目以降では、一文字目に使用できる文字に加えて以下のUnicodeクラスに所属する文字が使用できます。

クラス名 説明
Mn 結合文字(幅なし)
Mc 結合文字(幅あり)
Pc 句読点や接続文字
Nd 数字(Nlに含まれないもの)
Cf 書式指定文字

また、これに加えて二文字目以降には、.ピリオドも使用できます。