diff options
Diffstat (limited to 'indra/newview/app_settings/llsd-lsl-syntax.rng')
-rwxr-xr-x | indra/newview/app_settings/llsd-lsl-syntax.rng | 390 |
1 files changed, 390 insertions, 0 deletions
diff --git a/indra/newview/app_settings/llsd-lsl-syntax.rng b/indra/newview/app_settings/llsd-lsl-syntax.rng new file mode 100755 index 0000000000..aa92364ec1 --- /dev/null +++ b/indra/newview/app_settings/llsd-lsl-syntax.rng @@ -0,0 +1,390 @@ +<?xml version="1.0" encoding="UTF-8"?> +<grammar + xmlns="http://relaxng.org/ns/structure/1.0" + xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" + datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <start> + <element name="llsd"> + <element name="map"> + <group> + <element name="key"> + <value>constants</value> + </element> + <element name="map"> + <oneOrMore> + <group> + <ref name="keyString"/> + <element name="map"> + <ref name="Deprecated" /> + <ref name="constantTypeValue" /> + <ref name="Tooltip" /> + </element> + </group> + </oneOrMore> + </element> + </group> + + <group> + <element name="key"> + <value>controls</value> + </element> + <element name="map"> + <oneOrMore> + <group> + <ref name="keyString"/> + <ref name="mapTooltip"/> + </group> + </oneOrMore> + </element> + </group> + + <group> + <element name="key"> + <value>events</value> + </element> + <element name="map"> + <oneOrMore> + <group> + <ref name="keyString"/> + <element name="map"> + <ref name="Deprecated" /> + <ref name="Arguments"/> + <ref name="Tooltip"/> + </element> + </group> + </oneOrMore> + </element> + </group> + + <group> + <element name="key"> + <value>functions</value> + </element> + <element name="map"> + <oneOrMore> + <group> + <ref name="keyString"/> + <element name="map"> + <ref name="Arguments"/> + <ref name="Deprecated" /> + <element name="key"> + <value>energy</value> + </element> + <ref name="float"/> + <optional> + <group> + <element name="key"> + <value>god-mode</value> + </element> + <element name="boolean"> + <data type="boolean"/> + </element> + </group> + </optional> + <ref name="Return"/> + <element name="key"> + <value>sleep</value> + </element> + <ref name="float"/> + <ref name="Tooltip"/> + </element> + </group> + </oneOrMore> + </element> + </group> + + <group> + <element name="key"> + <value>llsd-lsl-syntax-version</value> + </element> + <element name="integer"> + <data type="integer" /> + </element> + </group> + + <group> + <element name="key"> + <value>types</value> + </element> + <element name="map"> + <oneOrMore> + <group> + <ref name="keyString"/> + <ref name="mapTooltip"/> + </group> + </oneOrMore> + </element> + </group> + </element> + </element> + </start> + + <define name="Deprecated"> + <optional> + <group> + <element name="key"> + <value>deprecated</value> + </element> + <element name="boolean"> + <data type="boolean"/> + </element> + </group> + </optional> + </define> + + <define name="keyName"> + <element name="key"><value>name</value></element> + <element name="string"><data type="string" /></element> + </define> + + + <define name="keyString"> + <element name="key"><data type="string"/></element> + </define> + + <define name="keyType"> + <element name="key"><value>type</value></element> + </define> + + <define name="typeList"> + <ref name="keyType" /> + <element name="string"> + <choice> + <value>float</value> + <value>integer</value> + <value>key</value> + <value>list</value> + <value>rotation</value> + <value>string</value> + <value>vector</value> + </choice> + </element> + </define> + + <define name="keyValue"> + <element name="key"><value>value</value></element> + </define> + + <define name="constantTypeValue"> + <choice> + <group> + <ref name="keyType"/> + <element name="string"><value>float</value></element> + <ref name="keyValue"/> + <element name="real"><data type="float"/></element> + </group> + <group> + <ref name="keyType"/> + <element name="string"><value>integer</value></element> + <ref name="keyValue"/> + <choice> + <element name="integer"><data type="integer"/></element> + <element name="integer"><data type="string"><param name="pattern">0x[0-9A-Fa-f]+</param></data></element> + </choice> + </group> + <group> + <ref name="keyType"/> + <element name="string"><value>key</value></element> + <ref name="keyValue"/> + <element name="uuid"><data type="string"><param name="pattern">[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}</param></data></element> + </group> + <group> + <ref name="keyType"/> + <element name="string"><value>rotation</value></element> + <ref name="keyValue"/> + <element name="array"> + <element name="map"> + <element name="key"> + <value>x</value> + </element> + <ref name="realFromMinusOneToOne"/> + </element> + <element name="map"> + <element name="key"> + <value>y</value> + </element> + <ref name="realFromMinusOneToOne"/> + </element> + <element name="map"> + <element name="key"> + <value>z</value> + </element> + <ref name="realFromMinusOneToOne"/> + </element> + <element name="map"> + <element name="key"><value>w</value></element> + <ref name="realFromMinusOneToOne"/> + </element> + </element> + </group> + <group> + <ref name="keyType"/> + <element name="string"><value>string</value></element> + <ref name="keyValue"/> + <element name="string"> + <data type="string"/> + </element> + </group> + <group> + <ref name="keyType"/> + <element name="string"> + <value>vector</value> + </element> + <ref name="keyValue"/> + <element name="array"> + <ref name="vector"/> + </element> + </group> + </choice> + </define> + + <define name="nameType"> + <ref name="keyName" /> + <ref name="keyType" /> + </define> + + <define name="realFromMinusOneToOne"> + <element name="real"> + <data type="float"> + <param name="pattern">([\-+]|)(1|0)\.\d+</param> + </data> + </element> + </define> + + <define name="float"> + <choice> + <element name="real"> + <data type="float"/> + </element> + <element name="real"> + <empty/> + </element> + </choice> + </define> + + <define name="vector"> + <element name="map"> + <element name="key"> + <value>x</value> + </element> + <ref name="realFromMinusOneToOne"/> + </element> + <element name="map"> + <element name="key"> + <value>y</value> + </element> + <ref name="realFromMinusOneToOne"/> + </element> + <element name="map"> + <element name="key"> + <value>z</value> + </element> + <ref name="realFromMinusOneToOne"/> + </element> + </define> + + <define name="mapTooltip"> + <element name="map"> + <ref name="Tooltip" /> + </element> + </define> + + <define name="Tooltip"> + <element name="key"> + <value>tooltip</value> + </element> + <element name="string"> + <data type="string" /> + </element> + </define> + + <define name="Arguments"> + <element name="key"><value>arguments</value></element> + <choice> + <element name="array"> + <oneOrMore> + <element name="map"> + <element name="key"><data type="string"><param name="pattern">[A-Z][A-Za-z0-9_]*|[a-z]</param></data></element> + <element name="map"> + <!--ref name="keyName" /--> + <ref name="Tooltip" /> + <ref name="typeList" /> + </element> + </element> + </oneOrMore> + <!--choice> + <oneOrMore> + <element name="map"> + <ref name="Argument"/> + </element> + </oneOrMore> + <element name="undef"> + <empty/> + </element> + </choice--> + </element> + <element name="undef"><empty/></element> + </choice> + </define> + + <define name="Argument"> + <ref name="keyType"/> + <choice> + <element name="string"> + <value>float</value> + </element> + <element name="string"> + <value>integer</value> + </element> + <element name="string"> + <value>key</value> + </element> + <element name="string"> + <value>list</value> + </element> + <element name="string"> + <value>rotation</value> + </element> + <element name="string"> + <value>string</value> + </element> + <element name="string"> + <value>vector</value> + </element> + </choice> + <ref name="Tooltip"/> + </define> + + <define name="Return"> + <element name="key"> + <value>return</value> + </element> + <choice> + <element name="string"> + <value>float</value> + </element> + <element name="string"> + <value>integer</value> + </element> + <element name="string"> + <value>key</value> + </element> + <element name="string"> + <value>list</value> + </element> + <element name="string"> + <value>rotation</value> + </element> + <element name="string"> + <value>string</value> + </element> + <element name="string"> + <value>vector</value> + </element> + <element name="string"> + <value>void</value> + </element> + </choice> + </define> + +</grammar>
\ No newline at end of file |