Table of Contents

Info

An Info file contains key-value pairs that can be collected into nested groups.

Syntax

Comments

# A single line comment stops here.

Longer comments:

#> Multi-line comment begins.
Continues...
And ends here. <#

Key-value definitions

Identifiers are case insensitive.

Key: Value
KEY = Value

When : is used, the remainder of the line is used as-is as the value. When the assignment operator = is used, only the following single token is used as the value.

String values

Text strings can be broken onto multiple lines as follows. There are no escape sequences. However, two consecutive single-quote characters produce the character.

help =
    "Run game's in windowed mode. "
    "This is a ''long'' string that continues."
    
Technical details: It is assumed that embedded markup is used for rich-formatting purposes where applicable/suitable.

Lists

The value in a key-value definition may also be a list.

key <value1, value2, value3>

Note that no assignment operator or colon character is used in this case.

Blocks

Blocks group one or more definitions together. A block may contain zero or more statements and/or nested blocks. Both curly brackets and parentheses can both be used to as delimiters.

Syntax example:

blocktype name {
    # ... Definition statements ...
}
 

Attributes

Following the blocktype name pair that begins a group, you may add any number of attributes. An attribute is key-value pair that becomes a member of the group just like the definitions inside the block.

The following blocks all mean the same thing:

component jdoom {
    library: jDoom.dll
}
component jdoom library jDoom.dll {}
component jdoom {library="jDoom" ".dll"}  # note: string joining

Examples

boolean run-in-window requires jdoom (
  option: -wnd
  default:  this is the default?

  help = "Run game in windowed mode. "
    "This is a ''long'' string that continues."

  description: Can contain any # chars : even () {}
)

choice display-color-bits {
  options <16, 32>

  subblock test ( hey = there )
}

See also