SSONはSimple Stupid Object Notationの略でシンプルにオブジェクトを表現することを目的にした表記法です。
基本的な構文
SSONの基本的な構文を以下に示します。SSONでオブジェクトを作成するためには、オブジェクト名を書いた行を配置するだけです。一部の単語( alias
, default,
.,
#)から始まる名前は禁止されていますが、それ以外は自由にオブジェクト名に使えます。 オブジェクトのプロパティを記述するためには、オブジェクト名の次の行に
.` に続いてプロパティ名を配置します。プロパティが空であることを示すためにプロパティを省略します。
person
.name = john
.last name = doe
.age = 800
pet
.species = cat
.annoying = very
オブジェクト名やプロパティ名に空白を含めることはできますが、両端の空白は自動的に削除されます。そのため、以下のようなスタイルをとることもできます。
person
.name = jane
.last name = doe
.age = 25
person
.name = bob
.age = 30
.job = construction worker
.salary = 123467
person
. name = bobby
. age = 60
. job = who knows?
SSONにはコメントもあり、 #
から始まる行はコメントとして扱われます。行の途中にある #
はコメント扱いにならない点に注意が必要です。
# this is a comment
my object
# this is also a comment
.some property = some value
my other object
.a property = # this is not a comment
# A comment between two properties!
.another property = Hello, World!
デフォルト値
オブジェクトにデフォルト値を持たせることもでき、これを使うことで重複する表記を省略できます。デフォルト値なので、オブジェクトを定義するときに上書きすることもできます。
また、デフォルト値を途中で変更することもできます。
default player
.health = 20
.armor = 0
.ammo = 5
# this player will have 20 health, 0 armor and 5 ammo
player
.x = 5
.y = 2
# this player won't have 0 armour because it overrides the property
player
.y = 1
.x = 0
.armor = 10
# it is also possible to change the default values midway
default player
.health = 10
# this player won't have 20 health, but it'll have 0 armor and 5 ammo
player
.x = 6
.y = 12
さらに他のデフォルト値を継承しつつ、デフォルト値の一部のプロパティを変更するためにaliasを使うこともできます。
default potion
.potency = 5
.price = 10
.name = Potion
.description = A basic remedy
# default poison objects will also inherit the default values of potion as defined above
alias poison potion
.name = Poison
.description = This one doesn't help you get better