Peter Amstutz wrote:
> Well, I haven't had a chance to sit down and work on this, but basically
> I have a few principals I want to follow:
>  1) It should be very easy to write by hand.  Requiring less typing than
> XML for example.
>  2) It should be readable and scan well, minimize extraneous and
> "magical" punctuation.  It should be somewhat context-sensitive.

Well one of the easiest things to immediately grasp is simple key=value
pairs.  I think we will need some kind of grouping syntax though.  This
could be Python-style and just use indenting, or use actual start and
end markers.

<objectname> =
  types = ...
  <childobject> =
  <type-specific> = <val>
<nextobject> =


<objectname> {
  types = <type1>, <type2>, <type3>
  <childobject> {
    types = ...
  <type-specific-key> = <value>
  <type-specific-key> = <value>
  children = <childreference>, <childreference>


terangreal {
  avatar {
    types = misc:avatar
    misc:nick { 
      # Since a property key is given (the loading code will have
      # a list of these, added by metaobjects), we can
      # assume this object has "property:property"
      # type and don't make them specify that:
      property:value = reed
      property:type = text/plain
    # Or maybe you should be able to just do this, and assume that
    # any unknown keys mean to create a property with the given value:
    misc:fullname = "Reed Hedges"
    # A comma could let you continue on a new line
    # (like Python I think, and gnu awk, let you do):
    children = vip://,
  example:xyzzy {
    # referencing other objects in this config file:
    children = avatar, bookmarks, vip://


>  5) It should be suitable for writing anything from simple configuration
> files up to complete worlds.

I think we should favor "simple configuration files" over "complete
world", i.e., not worry that much about parsing efficiency or whatever,
since binary COD does pretty well at that.


vos-d mailing list

Reply via email to