@@ -43,6 +43,7 @@ import static wgslplugin.language.psi.WGSLTypes.*;
43
43
%type IElementType
44
44
%unicode
45
45
46
+ %state ARRAY_SPEC
46
47
%state TYPE_SPEC
47
48
%state BIND_SPEC
48
49
%state ATTRIBUTE
@@ -76,15 +77,16 @@ IDENT = ([a-zA-Z_][0-9a-zA-Z_][0-9a-zA-Z_]*)|([a-zA-Z][0-9a-zA-Z_]*)
76
77
<YYINITIAL, ATTRIBUTE> "true" { return TRUE ; }
77
78
<YYINITIAL, ATTRIBUTE> "false" { return FALSE ; }
78
79
<YYINITIAL, ATTRIBUTE> {DECIMAL_FLOAT_LITERAL} { return DECIMAL_FLOAT_LITERAL ; }
79
- <YYINITIAL, ATTRIBUTE> {HEX_FLOAT_LITERAL} { return HEX_FLOAT_LITERAL ; }
80
- <YYINITIAL> "[[" { pushState(ATTRIBUTE ); return ATTR_LEFT ; }
81
- <YYINITIAL, TYPE_SPEC, BIND_SPEC, ATTRIBUTE> "," { return COMMA ; }
82
- <ATTRIBUTE> "]]" { popState(); return ATTR_RIGHT ; }
83
- <YYINITIAL, ATTRIBUTE> "(" { return PAREN_LEFT ; }
84
- <TYPE_SPEC> "(" { popState(); return PAREN_LEFT ; }
85
- <YYINITIAL, ATTRIBUTE> ")" { return PAREN_RIGHT ; }
86
- <YYINITIAL, TYPE_SPEC> "array" { pushState(TYPE_SPEC ); return ARRAY ; }
87
- <YYINITIAL> "<" { return LESS_THAN ; }
80
+ <YYINITIAL, ATTRIBUTE> {HEX_FLOAT_LITERAL} { return HEX_FLOAT_LITERAL ; }
81
+ <YYINITIAL> "[[" { pushState(ATTRIBUTE ); return ATTR_LEFT ; }
82
+ <YYINITIAL, TYPE_SPEC, BIND_SPEC, ATTRIBUTE> "," { return COMMA ; }
83
+ <ATTRIBUTE> "]]" { popState(); return ATTR_RIGHT ; }
84
+ <YYINITIAL, ATTRIBUTE> "(" { return PAREN_LEFT ; }
85
+ <TYPE_SPEC> "(" { popState(); return PAREN_LEFT ; }
86
+ <YYINITIAL, ATTRIBUTE> ")" { return PAREN_RIGHT ; }
87
+ <YYINITIAL> "array" { pushState(ARRAY_SPEC ); return ARRAY ; }
88
+ <TYPE_SPEC> "array" { pushState(TYPE_SPEC ); return ARRAY ; }
89
+ <YYINITIAL> "<" { return LESS_THAN ; }
88
90
<TYPE_SPEC, BIND_SPEC> "<" { return TYPE_LESS_THAN ; }
89
91
<YYINITIAL> ">" { return GREATER_THAN ; }
90
92
<TYPE_SPEC, BIND_SPEC> ">" { popState(); return TYPE_GREATER_THAN ; }
@@ -94,6 +96,9 @@ IDENT = ([a-zA-Z_][0-9a-zA-Z_][0-9a-zA-Z_]*)|([a-zA-Z][0-9a-zA-Z_]*)
94
96
<YYINITIAL> ";" { return SEMICOLON ; }
95
97
<YYINITIAL> "@" { return AT ; }
96
98
99
+ <ARRAY_SPEC> "(" { popState(); return PAREN_LEFT ; }
100
+ <ARRAY_SPEC> "<" { popState(); pushState(TYPE_SPEC ); return TYPE_LESS_THAN ; }
101
+
97
102
<PREPROCESSOR, PREPROCESSOR_NESTED> "{" { pushState(PREPROCESSOR_NESTED ); return PREPROCESSOR_DECLARATION ; }
98
103
<PREPROCESSOR, PREPROCESSOR_NESTED> "}" { popState(); return PREPROCESSOR_DECLARATION ; }
99
104
0 commit comments