JSONもどき
古い情報です。Giraffe+ 0.6.13.1042よりオブジェクトリテラルがサポートされてます。
配列とブロックがあって、ブロックが値の位置に現れた場合に、オブジェクトになるっていうJavaScriptの文法が重要です。
gsは配列とブロックの記号が入れ替わってますが、配列に関しては同じことができるものの、ブロックはすでにリテラルとして使われてる(JavaScript/C/C++のようなブロックは無い)ので、同じようなものは無理です。
別の記号を使う、単純に関数を呼ぶ、等、様々な手段が考えられますが、どうがんばってもJSONみたいな簡潔さは得られません。
JavaScriptのオブジェクト生成の文法はgsとコロンの意味が同じなので、下記のようなもので現状のパーサに手を加えずにそれっぽいことができます。
Block.obj: `p.= Object[ c: p.clone self.eval(c.to_Context) c ]
これで、ブロックに.objをつけることでスロット定義済みのオブジェクトが生成できます。
[a: 0 b: 1].obj.slot.flush
ブロックに何か記号を後置したらそういうふうになる、というのでもいいように思います。少なくともシンボルに使ってる後置記号はリテラルにも使えるはずです。.objと大差は無いでしょうが。
{ [a: 0 b: 1].obj [c: 0 d: 1].obj } { [a: 0 b: 1]* [c: 0 d: 1]* }