Syntactic rules
Syntactic rules of the KVIrc scripting language
In the following table you can find a good part of the KVIrc scripting language syntactic rules.

<entity> indicates an entity that can appear exactly one time.
[<entity>] indicates an optional entity.
{<entity>} indicates an entity that can appear one or more times.
'entity' indicates a literal entity: written exactly as it is.
<entity1>|<entity2> indicates mutually exclusive choices.
The mutually exclusive choices are often separated in two or more rules (productions), to improve readability.
<command buffer> [<whitespace>][<command block>]{<command buffer>}
<command buffer> [<whitespace>][<single command>]{<command buffer>}
<whitespace> {<space>|<tab>|<newline>}['\'<newline>][<whitespace>]
<space> ' '['\'<newline>][<space>] (ASCII space character)
<tab> '\t' (ASCII horizontal tabulation character)
<newline> '\n' (ASCII line feed (LF) character)
<command block> '{' <command buffer>[<whitespace>] '}'
<single command> <comment>
<single command> <lvalue command> <command terminator>
<single command> <rvalue command> <command terminator>
<comment> '#' {<non comment terminator>} <comment terminator>
<comment terminator> <newline> | <end of string>
<end of string> No character (internally ASCII character 0)
<command terminator> <newline> | <end of string> | ';'
<non comment-terminator> Any ASCII character except <newline> and <end of string>
<simple command> [<module name>'.']<command name>[<switch list>]{<space>}<command dependent part>
<lvalue command> <variable>[<space>]<operation>
<lvalue command> <variable>'->'<object command>
<lvalue command> <identifier>'->'<object command>
<operation> <one op operator>
<operation> <two op operator>[<space>]<param string>
<switch list> {<space>}'-'<alpha char>[{<space>}'='<single parameter>][<switch list>]
<command name> <alphanumeric char>{<alphanumeric char>}
<module name> <alphanumeric char>{<alphanumeric char>}
<alphanumeric char> Ascii characters 'A' to 'Z', 'a' to 'z', '0' to '9' and '_'
<variable> <global variable> | <local variable>
<global variable> '%' <uppercase letter> [<alphanumeric char>]['['<param string>']']
<local variable> '%' <lowercase letter> [<alphanumeric char>]['['<param string>']']
<param string> [<single parameter>][<space>[<param string>]]
<single parameter> <variable> | <identifier> | <nonterminator token> | <string>
<nonterminator token> <nonterminator char>['\'<newline><nonterminator char>]
<nonterminator char> Any ascii character except <space> and <command terminator>
<command dependent part> Production in each command help page
To be continued...

Index, Language Overview