Astraia.all

method

走査中に出現した配列の全ての要素が与えられた述語を満たすかを判別するプレースホルダです。

A.all(A.number)

Astraia.any

method

走査中に出現した値がnullか未定義でないかを判別するプレースホルダです。

A.any

Astraia.array

method

走査中に出現した値が配列かを判別するプレースホルダです。

A.array

Astraia.equal

method

走査中に出現したオブジェクトが与えられたオブジェクトと等しいかを判別するプレースホルダです。
オブジェクトは構造も含めて比較されます。

A.equal({
	"name": "Rin Shibuya",
	"age": 15
})

Astraia.eqv

method

走査中に出現した値が与えられた値と等しいかを判別するプレースホルダです。

A.eqv(765)

Astraia.exists

method

走査中に出現した配列の1つの要素が与えられた述語を満たすかを判別するプレースホルダです。

A.all(A.number)

Astraia.memory

method

走査中に出現した値を記録するプレースホルダです。

A.memory("memo")

Astraia.number

method

走査中に出現した値が数値であるかを判別するプレースホルダです。

A.number

Astraia.object

method

走査中に出現した値が配列でないオブジェクトかを判別するプレースホルダです。

A.object

Astraia.range

method

走査中に出現した値が数値で、与えられた範囲内にあるかを判別するプレースホルダです。

A.range(346, 765)

Astraia.refer

method

走査中に出現した値が記録したオブジェクトに等しいかを判定するプレースホルダです。 オブジェクトは構造も含めて比較されます。

A.refer("memo")

Astraia.regex

method

走査中に出現した値が与えられた正規表現とマッチするかを判別するプレースホルダです。

A.regex(/765|346|283/)

Astraia.scan

method

オブジェクトを与えられた規則に従って置き換えます。

var rules = [{
	pattern: {
	  "type": A.eqv("add"),
	  "left": A.number,
	  "right": A.number
	},
	action: function(obj) {
	  return obj.left + obj.right;
	}
}, {
	pattern: {
	  "type": A.eqv("sub"),
	  "left": A.number,
	  "right": A.number
	},
	action: function(obj) {
	  return obj.left - obj.right;
	}
}];

// outputs 2
A.scan(rules, {
	"type": "add",
	"left": {
	  "type": "add",
	  "left": 1,
	  "right": 2
	},
	"right": {
	  "type": "sub",
	  "left": 3,
	  "right": 4
	}
});

Astraia.string

method

走査中に出現した値が文字列であるかを判別するプレースホルダです。

A.string