Split attribute types

This commit is contained in:
numzero 2024-09-28 00:57:33 +03:00
parent 4846c19380
commit 159d8f6dba

View File

@ -63,24 +63,36 @@
<item>array</item>
</list>
<list name="attribute">
<item>@align</item>
<item>@binding</item>
<item>@builtin</item>
<list name="simple_attribute">
<item>@compute</item>
<item>@const</item>
<item>@diagnostic</item>
<item>@fragment</item>
<item>@invariant</item>
<item>@must_use</item>
<item>@vertex</item>
</list>
<list name="expr_attribute">
<item>@align</item>
<item>@binding</item>
<item>@blend_src</item>
<item>@group</item>
<item>@id</item>
<item>@interpolate</item>
<item>@invariant</item>
<item>@location</item>
<item>@blend_src</item>
<item>@must_use</item>
<item>@size</item>
<item>@vertex</item>
<item>@workgroup_size</item>
<item>@workgroup_size</item> <!-- 3 exprs, but OK -->
</list>
<list name="special_attribute">
<item>@builtin</item>
<item>@diagnostic</item>
<item>@interpolate</item>
</list>
<list name="attribute">
<include>simple_attribute</include>
<include>expr_attribute</include>
<include>special_attribute</include>
</list>
<list name="builtin_value_name">
@ -155,16 +167,19 @@
</context>
<context name="_Attributes">
<keyword attribute="Known Attribute" context="AttributeArgsMaybe" String="attribute" />
<keyword attribute="Known Attribute" context="#stay" String="simple_attribute" />
<keyword attribute="Known Attribute" context="AttributeArgsExpected" String="expr_attribute" />
<keyword attribute="Known Attribute" context="AttributeArgsExpected" String="special_attribute" />
<DetectChar attribute="Unknown Attribute" context="Attribute" char="@" />
</context>
<context attribute="Attribute Content" lineEndContext="#stay" name="Attribute">
<DetectIdentifier attribute="Unknown Attribute" context="#pop!AttributeArgsMaybe" />
</context>
<context attribute="Attribute Content" lineEndContext="#stay" name="AttributeArgsMaybe">
<context attribute="Attribute Content" lineEndContext="#stay" name="AttributeArgsExpected">
<DetectChar attribute="Attribute Content" context="#pop!AttributeArgs" char="(" />
<RegExpr attribute="Normal Text" context="#pop" lookAhead="true" String="[^\s(]" />
<RegExpr attribute="Error" context="#pop" String="[^\s(]" />
</context>
<context attribute="Attribute Content" lineEndContext="#stay" name="Attribute">
<DetectIdentifier attribute="Unknown Attribute" context="#pop" />
</context>
<context attribute="Attribute Content" lineEndContext="#stay" name="AttributeArgs">
<DetectChar attribute="Attribute Content" context="AttributeArgs" char="(" />
@ -180,6 +195,7 @@
<itemData spellChecking="false" name="Keyword" defStyleNum="dsKeyword" />
<itemData spellChecking="false" name="Control Flow" defStyleNum="dsControlFlow" />
<itemData spellChecking="false" name="BuiltIn" defStyleNum="dsDataType" />
<itemData spellChecking="false" name="Error" defStyleNum="dsError" />
<itemData spellChecking="false" name="Unknown Attribute" defStyleNum="dsError" />
<itemData spellChecking="false" name="Known Attribute" defStyleNum="dsAttribute" />
<itemData spellChecking="false" name="Attribute Content" defStyleNum="dsAttribute" />