<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.thedarkmod.com/index.php?action=history&amp;feed=atom&amp;title=GUI_Scripting%3A_BNF</id>
	<title>GUI Scripting: BNF - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.thedarkmod.com/index.php?action=history&amp;feed=atom&amp;title=GUI_Scripting%3A_BNF"/>
	<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=GUI_Scripting:_BNF&amp;action=history"/>
	<updated>2026-04-18T05:43:20Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=GUI_Scripting:_BNF&amp;diff=30105&amp;oldid=prev</id>
		<title>Geep: Add category tag</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=GUI_Scripting:_BNF&amp;diff=30105&amp;oldid=prev"/>
		<updated>2022-11-04T17:55:51Z</updated>

		<summary type="html">&lt;p&gt;Add category tag&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 17:55, 4 November 2022&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l310&quot;&gt;Line 310:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 310:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;    transition &amp;quot; &amp;lt;assign-to-float-variable&amp;gt; &amp;quot; &amp;quot; &amp;lt;FLOAT-LITERAL&amp;gt; &amp;quot; &amp;quot; &amp;lt;FLOAT-LITERAL&amp;gt; &amp;quot; &amp;lt;float-literal-quotes-optional&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;    transition &amp;quot; &amp;lt;assign-to-float-variable&amp;gt; &amp;quot; &amp;quot; &amp;lt;FLOAT-LITERAL&amp;gt; &amp;quot; &amp;quot; &amp;lt;FLOAT-LITERAL&amp;gt; &amp;quot; &amp;lt;float-literal-quotes-optional&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;    | transition &amp;quot; &amp;lt;assign-to-vect4-variable&amp;gt; &amp;quot; &amp;quot; &amp;lt;FLOAT-LITERAL&amp;gt; &amp;lt;FLOAT-LITERAL&amp;gt; &amp;lt;FLOAT-LITERAL&amp;gt; &amp;lt;FLOAT-LITERAL&amp;gt; &amp;quot; &amp;lt;float-literal-quotes- optional&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;    | transition &amp;quot; &amp;lt;assign-to-vect4-variable&amp;gt; &amp;quot; &amp;quot; &amp;lt;FLOAT-LITERAL&amp;gt; &amp;lt;FLOAT-LITERAL&amp;gt; &amp;lt;FLOAT-LITERAL&amp;gt; &amp;lt;FLOAT-LITERAL&amp;gt; &amp;quot; &amp;lt;float-literal-quotes- optional&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{GUI}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Geep</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=GUI_Scripting:_BNF&amp;diff=29839&amp;oldid=prev</id>
		<title>Geep: create this article</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=GUI_Scripting:_BNF&amp;diff=29839&amp;oldid=prev"/>
		<updated>2022-09-13T19:09:52Z</updated>

		<summary type="html">&lt;p&gt;create this article&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;This page is part of a series. See [[GUI Scripting Language]] for overview.&amp;#039;&amp;#039;&lt;br /&gt;
==Introduction==&lt;br /&gt;
Here is a draft definition of the TDM/idTech4 GUI Scripting Language, in informal Backus-Naur Form (BNF). As there was no existing such definition found, this was created from scratch for the TDM wiki, so undoubtably will need improvment. It reflects the overall flow of the language, not the details of the parser code and its class structure. The BNF here (with minor extensions) is probably more readable if less precise than other metalanguages like ABNF. If you need to generate a parser or a syntax-coloring editor, this is a starting point for you to evolve further. &lt;br /&gt;
&lt;br /&gt;
===Notation===&lt;br /&gt;
In standard BNF:&lt;br /&gt;
* &amp;lt;...&amp;gt; indicates a non-terminal node. By convention, a &amp;lt;human-readable-name&amp;gt; is lower case with dashes.&lt;br /&gt;
* ::= indicates node assignment/expansion&lt;br /&gt;
* | indicates alternatives, e.g., OR&lt;br /&gt;
* a terminal node is just given as text (unquoted, unlike ABNF). This includes punctuation like double-quotes, commas, curly brackets.&lt;br /&gt;
* terminals are assumed to be case-insensitive.&lt;br /&gt;
* optional white space (space, tab, CRLF) between nodes is assumed to be allowed. Exceptions are merely noted informally.&lt;br /&gt;
* the assumption is made that C-style preprocessing directive and comments with // and /*...*/ have already been resolved by the lexer, so can be ignored in the BNF.&lt;br /&gt;
&lt;br /&gt;
Extensions here are:&lt;br /&gt;
* &amp;lt;...&amp;gt;* indicates 0 or more repetitions, &amp;lt;...&amp;gt;+ indicates 1 or more repetitions.&lt;br /&gt;
* &amp;lt;ALL-UPPER-CASE&amp;gt; means it&amp;#039;s not going to be defined; infer its meaning from the name and assume it&amp;#039;s like most C-style languages.&lt;br /&gt;
* The formatting on the wiki page is broken into multiple lines. Assume a node definition is terminated by a &amp;quot;blank&amp;quot; line.&lt;br /&gt;
&lt;br /&gt;
===Comments about Structure===&lt;br /&gt;
* White space must not be inserted (i.e., use string concatentation) in these cases:&lt;br /&gt;
** &amp;lt;gui-parameter&amp;gt; ::= &amp;quot;gui::&amp;quot; &amp;lt;IDENTIFIER&amp;gt;&lt;br /&gt;
** &amp;lt;file-scope-variable&amp;gt; ::= &amp;lt;guidef-name&amp;gt; &amp;quot;::&amp;quot; &amp;lt;IDENTIFIER&amp;gt;&lt;br /&gt;
* Potential differentiation of bool, int, and enum datatypes were all collapsed into float non-terminals.&lt;br /&gt;
* Valid ranges of floats, including as vector components, are not being defined.&lt;br /&gt;
* Structuring within string values is not being defined.&lt;br /&gt;
* Restrictions on &amp;quot;set&amp;quot; command to exclude non-settable properties are subsummed within REGISTER non-terminals.&lt;br /&gt;
* Math operators and their precedents is likely the same as C (but not tested). Grouping parentheses are available. All this is swept into &amp;lt;FLOAT-EXPRESSION&amp;gt;.&lt;br /&gt;
* &amp;lt;gui-script&amp;gt; is the root.&lt;br /&gt;
&lt;br /&gt;
==Definition==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;gui-script&amp;gt; ::= &amp;lt;windowdef-declarator&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;windowdef-declarator&amp;gt; ::= windowDef &amp;lt;guidef-name&amp;gt; { &amp;lt;windowdef-body&amp;gt; }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;guidef-name&amp;gt; ::= &amp;lt;IDENTIFIER&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;windowdef-body&amp;gt; ::=&lt;br /&gt;
   &amp;lt;common-property-init&amp;gt;+ | &amp;lt;user-var-declarator&amp;gt;* | &amp;lt;child-guidef-declarator&amp;gt;* | &amp;lt;event-handler-declarator&amp;gt;*&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;common-property-init&amp;gt; ::=&lt;br /&gt;
   &amp;lt;common-property-float-init&amp;gt; | &amp;lt;common-property-vect4-init&amp;gt; | &amp;lt;common-property-vect2-init&amp;gt; | &amp;lt;common-property-string-init&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;common-property-float-init&amp;gt; ::=&lt;br /&gt;
   &amp;lt;common-property-name-float&amp;gt; &amp;lt;float-value&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;common-property-name-float&amp;gt; ::=&lt;br /&gt;
   bordersize | forceaspectheight | forceaspectwidth | invertrect | matscalex | matscaley | menugui | modal&lt;br /&gt;
   | naturalmatscale | noclip | nocursor | noevents | notime | nowrap | rotate | shadow | showtime | showcoords&lt;br /&gt;
   | textalign | textalignx | textaligny | textscale | visible | wantenter&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;float-value&amp;gt; ::=&lt;br /&gt;
   &amp;lt;FLOAT-LITERAL&amp;gt; | &amp;lt;FLOAT-EXPRESSION&amp;gt; | &amp;lt;identifier-type&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;identifier-type&amp;gt; ::=&lt;br /&gt;
   &amp;lt;gui-parameter&amp;gt; | &amp;lt;file-scope-variable&amp;gt; | &amp;lt;IDENTIFIER&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;file-scope-variable&amp;gt; ::=&lt;br /&gt;
   &amp;lt;guidef-name&amp;gt; &amp;quot;::&amp;quot; &amp;lt;IDENTIFIER&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;gui-parameter&amp;gt; ::=&lt;br /&gt;
   &amp;quot;gui::&amp;quot; &amp;lt;IDENTIFIER&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;common-property-vect4-init&amp;gt; ::=&lt;br /&gt;
   &amp;lt;common-property-name-vect4&amp;gt; &amp;lt;vect4-property-value&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;vect4-property-value ::=&lt;br /&gt;
   &amp;lt;float-value&amp;gt; , &amp;lt;float-value&amp;gt; , &amp;lt;float-value&amp;gt; , &amp;lt;float-value&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;common-property-name-vect4&amp;gt; ::=&lt;br /&gt;
   backcolor | bordercolor | forecolor | matcolor | rect&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;common-property-vect2-init&amp;gt; ::=&lt;br /&gt;
   &amp;lt;common-property-name-vect2&amp;gt; &amp;lt;vect2-property-value&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;vect2-property-value&amp;gt; ::=&lt;br /&gt;
   &amp;lt;float-value&amp;gt; , &amp;lt;float-value&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;common-property-name-vect2&amp;gt; ::= shear&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;common-property-string-init&amp;gt; ::=&lt;br /&gt;
   &amp;lt;common-property-name-string&amp;gt; &amp;lt;string-value&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;common-property-name-string&amp;gt; ::=&lt;br /&gt;
   background | comment | font | name | play | text&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;string-value&amp;gt; ::=&lt;br /&gt;
   &amp;lt;DOUBLE-QUOTED-STRING-LITERAL&amp;gt; | &amp;lt;identifier-type&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;child-guidef-declarator&amp;gt; ::=&lt;br /&gt;
   &amp;lt;binddef-declarator&amp;gt; | &amp;lt;choicedef-declarator&amp;gt; | &amp;lt;editdef-declarator&amp;gt; | &amp;lt;listdef-declarator&amp;gt;&lt;br /&gt;
   | &amp;lt;renderdef-declarator&amp;gt; | &amp;lt;sliderdef-declarator&amp;gt; | &amp;lt;windowdef-declarator&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;binddef-declarator&amp;gt; ::=&lt;br /&gt;
   bindDef &amp;lt;guidef-name&amp;gt; { &amp;lt;binddef-body&amp;gt; }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;choicedef-declarator&amp;gt; ::=&lt;br /&gt;
   choiceDef &amp;lt;guidef-name&amp;gt; { &amp;lt;choicedef-body&amp;gt; }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;editdef-declarator&amp;gt; ::=&lt;br /&gt;
   editDef &amp;lt;guidef-name&amp;gt; { &amp;lt;editdef-body&amp;gt; }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;listdef-declarator&amp;gt; ::=&lt;br /&gt;
   listDef &amp;lt;guidef-name&amp;gt; { &amp;lt;listdef-body&amp;gt; }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;renderdef-declarator&amp;gt; ::=&lt;br /&gt;
   renderDef &amp;lt;guidef-name&amp;gt; { &amp;lt;renderdef-body&amp;gt; }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;sliderdef-declarator&amp;gt; ::=&lt;br /&gt;
   sliderDef &amp;lt;guidef-name&amp;gt; { &amp;lt;sliderdef-body&amp;gt; }&lt;br /&gt;
 &lt;br /&gt;
  &lt;br /&gt;
 &amp;lt;binddef-body&amp;gt; ::=&lt;br /&gt;
   &amp;lt;windowdef-body&amp;gt; | &amp;lt;binddef-property-init&amp;gt;*&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;binddef-property-init&amp;gt; ::=&lt;br /&gt;
   bind &amp;lt;string-value&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;choicedef-body&amp;gt; ::=&lt;br /&gt;
   &amp;lt;windowdef-body&amp;gt; | &amp;lt;choicedef-property-init&amp;gt;*&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;choicedef-property-init&amp;gt; ::=&lt;br /&gt;
   &amp;lt;choicedef-property-float-init&amp;gt; | &amp;lt;choicedef-property-string-init&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;choicedef-property-float-init&amp;gt; ::=&lt;br /&gt;
   &amp;lt;choicedef-property-name-float&amp;gt; &amp;lt;float-value&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;choicedef-property-name-float&amp;gt; ::=&lt;br /&gt;
   choicetype | liveupdate&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;choicedef-property-string-init&amp;gt; ::=&lt;br /&gt;
   &amp;lt;choicedef-property-name-string&amp;gt; &amp;lt;string-value&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;choicedef-property-name-string&amp;gt; ::=&lt;br /&gt;
   cvar | choicevar | gui | updategroup&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;editdef-body&amp;gt; ::=&lt;br /&gt;
   &amp;lt;windowdef-body&amp;gt; | &amp;lt;editdef-property-init&amp;gt;*&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;editdef-property-init&amp;gt; ::=&lt;br /&gt;
   &amp;lt;editdef-property-float-init&amp;gt; | &amp;lt;editdef-property-string-init&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;editdef-property-float-init&amp;gt; ::=&lt;br /&gt;
   &amp;lt;editdef-property-name-float&amp;gt; &amp;lt;float-value&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;editdef-property-name-float&amp;gt; ::=&lt;br /&gt;
   forcescroll | liveupdate | numeric | password | readonly | wrap&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;editdef-property-string-init&amp;gt; ::=&lt;br /&gt;
   &amp;lt;editdef-property-name-string&amp;gt; &amp;lt;string-value&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;editdef-property-name-string&amp;gt; ::=&lt;br /&gt;
   cvargroup | source&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;listdef-body&amp;gt; ::=&lt;br /&gt;
    &amp;lt;windowdef-body&amp;gt; | &amp;lt;listdef-property-init&amp;gt;*&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;listdef-property-init&amp;gt; ::=&lt;br /&gt;
   &amp;lt;listdef-property-float-init&amp;gt; | &amp;lt;listdef-property-string-init&amp;gt; | &amp;lt;listdef-property-comma-separated-values-init&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;listdef-property-float-init&amp;gt; ::=&lt;br /&gt;
   &amp;lt;listdef-property-name-float&amp;gt; &amp;lt;float-value&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;listdef-property-name-float&amp;gt; ::=&lt;br /&gt;
   horizontal | multiplesel&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;listdef-property-string-init&amp;gt; ::=&lt;br /&gt;
   &amp;lt;listdef-property-name-string&amp;gt; &amp;lt;string-value&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;listdef-property-name-string&amp;gt; ::= name&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;listdef-property-comma-separated-values-init&amp;gt; ::=&lt;br /&gt;
   &amp;lt;listdef-property-name-comma-separated-values&amp;gt; &amp;quot; &amp;lt;comma-list&amp;gt;* &amp;lt;float-value&amp;gt; &amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;comma-list&amp;gt; ::= &amp;lt;float-value&amp;gt; ,&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;listdef-property-name-comma-separated-values&amp;gt; ::=&lt;br /&gt;
   tabaligns | tabiconsizes | tabiconvoffset | tabstops | tabtypes&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;renderdef-body&amp;gt; ::=&lt;br /&gt;
   &amp;lt;windowdef-body&amp;gt; | &amp;lt;renderdef-property-init&amp;gt;*&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;renderdef-property-init&amp;gt; ::=&lt;br /&gt;
   &amp;lt;renderdef-property-float-init&amp;gt; | &amp;lt;renderdef-property-string-init&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;renderdef-property-float-init&amp;gt; ::=&lt;br /&gt;
   &amp;lt;renderdef-property-name-float&amp;gt; &amp;lt;float-value&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;renderdef-property-name-float&amp;gt; ::=&lt;br /&gt;
   needsrender | noshadows&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;renderdef-property-vect4-init&amp;gt; ::=&lt;br /&gt;
   &amp;lt;renderdef-property-name-vect4&amp;gt; &amp;lt;vect4-property-values&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;renderdef-property-name-vect4&amp;gt; ::=&lt;br /&gt;
   lightcolor | lightorigin | modelorigin | modelrotate | viewoffset&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;renderdef-property-string-init&amp;gt; ::=&lt;br /&gt;
   &amp;lt;renderdef-property-name-string&amp;gt; &amp;lt;string-value&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;renderdef-property-name-string&amp;gt; ::= &lt;br /&gt;
   anim | animclass | model&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;sliderdef-body&amp;gt; ::=&lt;br /&gt;
   &amp;lt;windowdef-body&amp;gt; | &amp;lt;sliderdef-property-init&amp;gt;*&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;sliderdef-property-init&amp;gt; ::=&lt;br /&gt;
   &amp;lt;sliderdef-property-float-init&amp;gt; | &amp;lt;sliderdef-property-string-init&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;sliderdef-property-float-init&amp;gt; ::=&lt;br /&gt;
   &amp;lt;sliderdef-property-name-float&amp;gt; &amp;lt;float-value&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;sliderdef-property-name-float&amp;gt; ::=&lt;br /&gt;
   liveupdate | low | high | scrollbar | step | stepsize | vertical | verticalflip&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;sliderdef-property-string-init&amp;gt; ::=&lt;br /&gt;
   &amp;lt;sliderdef-property-name-string&amp;gt; &amp;lt;string-value&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;sliderdef-property-name-string&amp;gt; ::=&lt;br /&gt;
   cvar | cvargroup | thumbshader&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;user-var-declarator&amp;gt; ::=&lt;br /&gt;
   float &amp;lt;IDENTIFIER&amp;gt; 0 | float &amp;lt;IDENTIFIER&amp;gt; ; | definefloat &amp;lt;IDENTIFIER&amp;gt; 0 | definefloat &amp;lt;IDENTIFIER&amp;gt; ;&lt;br /&gt;
   | definevec4 &amp;lt;IDENTIFIER&amp;gt; ;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;event-handler-declarator&amp;gt; ::=&lt;br /&gt;
   &amp;lt;event-handler-type&amp;gt; &amp;lt;IDENTIFIER&amp;gt; { &amp;lt;event-body&amp;gt; }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;event-handler-type&amp;gt; ::=&lt;br /&gt;
   onTime &amp;lt;FLOAT-LITERAL&amp;gt; | onNamedEvent &amp;lt;DOUBLE-QUOTED-STRING-LITERAL&amp;gt;&lt;br /&gt;
   | onAction | onActionRelease | onActivate | onDeactivate | onEnter | onEnterRelease&lt;br /&gt;
   | onEsc | onEvent | onMouseEnter | onMouseExit | onTrigger&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;event-body&amp;gt; ::= &amp;lt;event-command&amp;gt;*&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;event-command&amp;gt; ::= &amp;lt;command&amp;gt; ;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;command&amp;gt; ::=&lt;br /&gt;
   &amp;lt;if-command&amp;gt; | &amp;lt;reset-cinematics-command&amp;gt; | &amp;lt;reset-time-command&amp;gt; | &amp;lt;set-command&amp;gt;&lt;br /&gt;
   | &amp;lt;set-focus-command&amp;gt; | &amp;lt;show-cursor-command&amp;gt;| &amp;lt;transition-command&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;if-phrase&amp;gt; ::=&lt;br /&gt;
   if ( &amp;lt;IF-CONDITION&amp;gt; ) { &amp;lt;event-command&amp;gt;* }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;else-if-branch&amp;gt; ::=&lt;br /&gt;
   else &amp;lt;if-phrase&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;if-command&amp;gt; ::=&lt;br /&gt;
   &amp;lt;if-phrase&amp;gt;&lt;br /&gt;
   | &amp;lt;if-phrase&amp;gt; &amp;lt;else-if-branch&amp;gt;* else { &amp;lt;event-command&amp;gt;* }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;reset-cinematics-command&amp;gt; ::== resetcinematics&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;reset-time-command ::=&lt;br /&gt;
   resetTime &amp;lt;FLOAT-LITERAL&amp;gt; | resetTime &amp;quot; &amp;lt;FLOAT-LITERAL&amp;gt; &amp;quot;&lt;br /&gt;
   | resetTime &amp;quot; &amp;lt;guidef-name&amp;gt; &amp;quot; &amp;lt;FLOAT-LITERAL&amp;gt; | resetTime &amp;quot; &amp;lt;guidef-name&amp;gt; &amp;quot;  &amp;quot; &amp;lt;FLOAT-LITERAL&amp;gt; &amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;assign-to-float-variable&amp;gt; ::=&lt;br /&gt;
   &amp;lt;PROPERTY-REGISTER-NAME-FLOAT&amp;gt; | &amp;lt;USER-VARIABLE-NAME-FLOAT&amp;gt;&lt;br /&gt;
   | &amp;lt;FILE-SCOPE-REGISTER-NAME-FLOAT&amp;gt; | &amp;lt;FILE-SCOPE-USER-VARIABLE-NAME-FLOAT&amp;gt;&lt;br /&gt;
   | &amp;lt;GUI-PARAMETER-NAME-FLOAT&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;assign-from-float-variable&amp;gt; ::=&lt;br /&gt;
   &amp;lt;PROPERTY-NAME-FLOAT&amp;gt; | &amp;lt;USER-VARIABLE-NAME-FLOAT&amp;gt;&lt;br /&gt;
   | &amp;lt;FILE-SCOPE-PROPERTY-NAME-FLOAT&amp;gt; | &amp;lt;FILE-SCOPE-USER-VARIABLE-NAME-FLOAT&amp;gt;&lt;br /&gt;
   | &amp;lt;GUI-PARAMETER-NAME-FLOAT&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;assign-to-vect4-variable&amp;gt; ::=&lt;br /&gt;
   &amp;lt;PROPERTY-REGISTER-NAME-VECT4&amp;gt; | &amp;lt;USER-VARIABLE-NAME-VECT4&amp;gt;&lt;br /&gt;
   | &amp;lt;FILE-SCOPE-REGISTER-NAME-VECT4&amp;gt; | &amp;lt;FILE-SCOPE-USER-VARIABLE-NAME-VECT4&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;assign-from-vect4-variable&amp;gt; ::=&lt;br /&gt;
   &amp;lt;PROPERTY-NAME-VECT4&amp;gt; | &amp;lt;USER-VARIABLE-NAME-VECT4&amp;gt;&lt;br /&gt;
   | &amp;lt;FILE-SCOPE-PROPERTY-NAME-VECT4&amp;gt; | &amp;lt;FILE-SCOPE-USER-VARIABLE-NAME-VECT4&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;assign-to-string-variable&amp;gt; ::=&lt;br /&gt;
   &amp;lt;PROPERTY-REGISTER-NAME-STRING&amp;gt; | &amp;lt;FILE-SCOPE-REGISTER-NAME-STRING&amp;gt; | &amp;lt;GUI-PARAMETER-NAME-STRING&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;assign-from-string-variable&amp;gt; ::=&lt;br /&gt;
   &amp;lt;PROPERTY-NAME-STRING&amp;gt; | &amp;lt;FILE-SCOPE-PROPERTY-NAME-STRING&amp;gt; | &amp;lt;GUI-PARAMETER-NAME-STRING&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;set-command&amp;gt; ::=&lt;br /&gt;
   set &amp;quot; &amp;lt;assign-to-float-variable&amp;gt; &amp;quot; &amp;quot; &amp;lt;FLOAT-LITERAL&amp;gt; &amp;quot;&lt;br /&gt;
   | set &amp;quot; &amp;lt;assign-to-float-variable&amp;gt; &amp;quot; &amp;quot;$ &amp;lt;assign-from-float-variable&amp;gt; &amp;quot; &lt;br /&gt;
   | set &amp;quot; &amp;lt;assign-to-vect4-variable&amp;gt; &amp;quot; &amp;quot; &amp;lt;FLOAT-LITERAL&amp;gt; &amp;lt;FLOAT-LITERAL&amp;gt; &amp;lt;FLOAT-LITERAL&amp;gt; &amp;lt;FLOAT-LITERAL&amp;gt; &amp;quot;&lt;br /&gt;
   | set &amp;quot; &amp;lt;assign-to-vect4-variable&amp;gt; &amp;quot; &amp;quot;$ &amp;lt;assign-from-vect4-variable&amp;gt; &amp;quot;&lt;br /&gt;
   | set &amp;quot; &amp;lt;assign-to-string-variable&amp;gt; &amp;quot; &amp;lt;DOUBLE-QUOTED-STRING-LITERAL&amp;gt;&lt;br /&gt;
   | set &amp;quot; &amp;lt;assign-to-string-variable&amp;gt; &amp;quot; &amp;quot;$ &amp;lt;assign-from-string-variable&amp;gt; &amp;quot;&lt;br /&gt;
   | set &amp;quot;cmd&amp;quot; &amp;quot; &amp;lt;STRING-LITERAL&amp;gt; &amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;set-focus-command&amp;gt; ::=&lt;br /&gt;
   setfocus &amp;quot; &amp;lt;guidef-name&amp;gt; &amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;show-cursor-command&amp;gt; ::=&lt;br /&gt;
   showcursor &amp;quot; &amp;lt;FLOAT-LITERAL &amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;float-literal-quotes-optional&amp;gt; ::=&lt;br /&gt;
   &amp;lt;FLOAT-LITERAL&amp;gt; | &amp;quot; &amp;lt;FLOAT-LITERAL&amp;gt; &amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;transition-command&amp;gt; ::=&lt;br /&gt;
   &amp;lt;transition-command-required&amp;gt; | &amp;lt;transition-command-required&amp;gt; &amp;lt;float-literal-quotes-optional&amp;gt; &amp;lt;float-literal-quotes-optional&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;transition-command-required&amp;gt; :==&lt;br /&gt;
   transition &amp;quot; &amp;lt;assign-to-float-variable&amp;gt; &amp;quot; &amp;quot; &amp;lt;FLOAT-LITERAL&amp;gt; &amp;quot; &amp;quot; &amp;lt;FLOAT-LITERAL&amp;gt; &amp;quot; &amp;lt;float-literal-quotes-optional&amp;gt;&lt;br /&gt;
   | transition &amp;quot; &amp;lt;assign-to-vect4-variable&amp;gt; &amp;quot; &amp;quot; &amp;lt;FLOAT-LITERAL&amp;gt; &amp;lt;FLOAT-LITERAL&amp;gt; &amp;lt;FLOAT-LITERAL&amp;gt; &amp;lt;FLOAT-LITERAL&amp;gt; &amp;quot; &amp;lt;float-literal-quotes- optional&amp;gt;&lt;/div&gt;</summary>
		<author><name>Geep</name></author>
	</entry>
</feed>