Documentation for Xaller

Written by CreativeGP

Sep 29 / 2017

Xallerとは

XallerはWebアプリをもっとかんたんに作れるようにするための言語です。

Xallerの型は他の言語のように単純ではありません。基本的に型には名前種族があります。

名前は型の名前で形の識別に使います。

種族

種族は型をグループ分けするもののようなもので いくつかの種類があります。

全ての型はこれらの種族のどれかに必ず属します。

種族詳細
Number数字関係
String文字列
Boolean論理値
Dirty汚れた型の識別子

このうち、Dirty種族以外は全て純粋な種族と呼び、純粋な種族に属する型を純粋な型といいます。

Dirty種族の型は汚れた型といいます。

基本型

型のうちでももともとXallerが定義している型があります、これを基本型と呼んでいます。 基本型は全部で3つあり、全て純粋な型です。

型名種族詳細
intNumber数字を格納できます、現在は小数の区別はされません。
stringString文字列を格納できます。1文字も文字列として扱います。
boolBoolean論理値を格納できます。

ユーザー型

基本型以外にも自分で型を作りたいと思ったときに自分仕様の型を作ることができます、これをユーザー型といいます。 ユーザー型は次のようなコードで作ることができます。


-(name):inh1 :inh2 ... {

}
			

name 新しい型の名前

inh1, inh2, ... 継承する型の名前

型の継承は既存の型をコピーする機能ですが、注意点があります。 まず、純粋な型をコピーする場合はそれ一つしかコピーすることができません。 つまり、純粋な型をいくつかコピーしたり、純粋な型と汚れた型を一緒にすることはできません。 純粋な型を継承した場合は新しい型も純粋な型です。それ以外の場合は新しい型は汚れた型になります。

メンバ

汚れた型はメンバを持つことができます。メンバは他の言語で言う構造体やクラスのようなものです。 コードは型の定義のときに使用する中括弧の中に変数関数を作るように書いていけばいいだけです。 メンバを持った型で変数を作った場合、「変数の名前.メンバ名」のような名前の関数や引数が自動的に生成されます。 例として次のようなコードで型を作ってみます。


-(Test) {
    (member1)int
    @ (func) {
	return .member1
    }
}
			

注意:メンバ関数の中で他のメンバにアクセスするときは.メンバ名と書きます。 このTestという型はmember1という純粋なメンバ変数とfuncというメンバ変数を返すメンバ関数を持っています。 このTestを使ってhogeという名前の変数を作った場合はこれらの変数と

変数名型名種族
hogeTestDirty
hoge.member1intNumber

hoge.funcというhoge.member1を返す関数が自動定義されます。 ここでDirty型の変数が定義されているのが解ると思います。

基本的にxallerの値はデータを持ちます。 データは文字列形式で管理されます。プログラム中に「3」とか「'hello'」とそれは値とみなされて 勝手に基本型がつけられます。

変数

xallerの変数はに名前をつけたものです。 変数に関しては以下のコードを見ておいてください。


# 変数作成 (name)type
# 変数参照 name
# 変数代入 name = expression

(a)int    # 試しにint型のaという変数を作ってみる
a = 3     # a >> 3
a = a     # a >> 3
		    

関数

Xallerの関数は他の言語の関数とほとんど同じ仕様です、中に処理をまとめておいてそれを何回も呼び出すことができます。 関数は以下のコードで創ることができます。


@ (name arg1(arg1type) arg2(arg2type) ...) {
    content
    return expression
}
		

注意:returnは関数を終了します、引数がある場合はその横に書けば自動的に返されます。 returnは必須ではありません、なかった場合は閉じ括弧で戻り値無しで終了します。