An Info file contains key-value pairs that can be collected into nested groups.
# A single line comment stops here.
Longer comments:
#> Multi-line comment begins. Continues... And ends here. <#
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.
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."
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 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 ... }
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
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 ) }