各ノード型の分類とプロパティ、実行または評価したときの挙動は以下の通りです。
ただし、型名およびプロパティ名(@valueを除く)では、先頭のhttps://linkedlang.org/ns#を省略しています。
また、あるプロパティhogeの関数としての評価結果を{hoge}で表します。
| 分類 | プロパティ |
|---|---|
| コードブロック | content |
コードブロックです。
contentは命令のリストです。配列または単一の命令ノードとして記述します。
実行するとcontentのリスト内の命令を1つずつ順次実行します。
| 分類 | プロパティ |
|---|---|
| 関数 | @value |
整数または浮動小数点数です。
評価すると@valueの数値リテラルの値を返します。
| 分類 | プロパティ |
|---|---|
| 関数 | @value |
文字列です。
評価すると@valueの文字列リテラルの値を返します。
| 分類 | プロパティ |
|---|---|
| 関数 | @value |
論理値(trueまたはfalse)です。
評価すると@valueの論理値リテラルの値を返します。
| 分類 | プロパティ |
|---|---|
| 関数 | @value |
プログラム中の変数です。
評価すると@valueの文字列リテラルを変数名として、プログラムのその時点での変数の値を返します。
値の束縛されていない変数名を使用するとエラーになります。
| 分類 | プロパティ |
|---|---|
| 関数 | lop, rop |
加算です。
lop, ropは評価されてNumberの値を返す関数です。
評価すると{lop} + {rop}の値を返します。
| 分類 | プロパティ |
|---|---|
| 関数 | lop, rop |
減算です。
lop, ropは評価されてNumberの値を返す関数です。
評価すると{lop} - {rop}の値を返します。
| 分類 | プロパティ |
|---|---|
| 関数 | lop, rop |
乗算です。
lop, ropは評価されてNumberの値を返す関数です。
評価すると{lop} * {rop}の値を返します。
| 分類 | プロパティ |
|---|---|
| 関数 | lop, rop |
除算です。
lop, ropは評価されてNumberの値を返す関数です。
評価すると{lop} / {rop}の値を返します。
| 分類 | プロパティ |
|---|---|
| 関数 | lop, rop |
剰余演算です。
lop, ropは評価されてNumberの値を返す関数です。
評価すると{lop} % {rop} ({lop}を{rop}で割ったあまり)の値を返します。
| 分類 | プロパティ |
|---|---|
| 関数 | lop, rop |
論理積演算です。
lop, ropは評価されてBooleanの値を返す関数です。
評価すると{lop} && {rop} ({lop}と{rop}の論理積)の値を返します。
| 分類 | プロパティ |
|---|---|
| 関数 | lop, rop |
論理和演算です。
lop, ropは評価されてBooleanの値を返す関数です。
評価すると{lop} || {rop} ({lop}と{rop}の論理和)の値を返します。
| 分類 | プロパティ |
|---|---|
| 関数 | object |
論理否定演算です。
objectは評価されてBooleanの値を返す関数です。
評価すると!{object} ({object}の否定)の値を返します。
| 分類 | プロパティ |
|---|---|
| 関数 | lop, rop |
等価比較です。
lop, ropは関数であり、{lop}と{rop}の型(Number, String, Booleanのいずれか)は一致している必要があります。
評価すると{lop} == {rop} ({lop}と{rop}が等しいかどうか)の値を返します。
| 分類 | プロパティ |
|---|---|
| 関数 | lop, rop |
大小比較です。
lop, ropは評価されてNumberの値を返す関数です。
評価すると{lop} < {rop} ({lop}が{rop}より小さいかどうか)の値を返します。
| 分類 | プロパティ |
|---|---|
| 関数 | object |
数値から文字列への変換関数です。
objectは評価されてNumberの値を返す関数です。
評価すると{object}の値を半角10進数字で表現した文字列値を返します。
| 分類 | プロパティ |
|---|---|
| 関数 | object |
文字列から数値への変換関数です。
objectは評価されてStringの値を返す関数です。
評価すると{object}の値の半角10進数字の列を解釈した数値を返します。
{object}の値に半角数字以外の文字が含まれる場合の動作は未定義です。この実装における実際の動作は、RubyのString#to_iを参照して下さい。
| 分類 | プロパティ |
|---|---|
| 命令 | origin, target |
変数への値の束縛です。
originは関数、targetはVariableです。
実行するとtargetの変数名に{origin}の値を束縛します。
| 分類 | プロパティ |
|---|---|
| 命令 | target |
ユーザーからの入力を受け取って変数に束縛する命令です。
targetはVariableです。
実行すると標準入力から最初の改行文字までを読み込み、その改行文字を含まない文字列をtargetの変数名に束縛します。
| 分類 | プロパティ |
|---|---|
| 命令 | object |
値の出力です。
objectは関数です。
実行すると{object}の値を標準出力に出力します。数値は半角10進数字で、真理値はすべて小文字の真理値リテラルで出力します。
| 分類 | プロパティ |
|---|---|
| 命令 | condition, then, else* |
条件分岐です。
conditionはBooleanの値を返す関数、then, elseはコードブロックです。
実行すると{condition}の値がtrueであればthenを、falseであればelseを実行します。
elseは省略可能です。省略した場合、{condition}の値がfalseのときには実行しても何もしません。
| 分類 | プロパティ |
|---|---|
| 命令 | condition, then |
繰り返し処理です。
conditionはBooleanの値を返す関数、thenはコードブロックです。
実行すると{condition}の値がtrueである間、繰り返しthenを実行します。conditionの評価タイミングはthenの実行直前です。