filetype: inform6
detect:
  filename: "\\.inf$"
rules:
  - statement: "\\b(Constant|Release|Serial|Include|Object|Verb)\\b"
  - statement: "\\b(with|has)\\b"
  - identifier: "\\b(Story|Headline|Initialise|TheEnd|DeathMessage)\\b"
  - identifier: "\\b(MAX_SCORE|OBJECT_SCORE|ROOM_SCORE)\\b"
  - identifier: "\\b(player|thedark|location|noun|second|score|self)\\b"
  - identifier: "\\b(inventory_stage|deadflag)\\b"
  - identifier: "\\b(name|article|description|before|after|initial|found_in)\\b"
  - identifier: "\\b(inside_description|invent|react_before|react_after)\\b"
  - identifier: "\\b(found_in|door_to|door_dir|capacity)\\b"
  - constant: "\\b(pluralname|scenery|switchable|scored|visited|light)\\b"
  - constant: "\\b(door|lockable|locked|transparent|supporter)\\b"
  - constant: "\\b(static|enterable|openable|open|container|concealed)\\b"
  - identifier: "\\b(n_to|s_to|e_to|w_to|ne_to|se_to|sw_to|nw_to)\\b"
  - identifier: "\\b(u_to|d_to|in_to|out_to|cant_go)\\b"
  - statement: "\\b(if|else|return|rtrue|rfalse|default)\\b"
  - statement: "\\b(print|print_ret|style|give|move|to)\\b"
  - constant: "\\b(nothing|underline|roman)\\b"
  - symbol: "\\b(hasnt|in|notin)\\b"
  - type: "\\b(string|The)\\b"
  - constant.number: "\\b-?[0-9]+\\b"
  - constant.string:
      start: "\""
      end: "\""
      skip: "\\\\."
      rules:
        - constant.specialChar: "[~^]"
  - constant.string:
      start: "'"
      end: "'"
      skip: "\\\\."
      rules:
        - constant.specialChar: "\\\\."
  - comment: "!.*$"
