25 |
| KW_stabilize ("stabilize") |
| KW_stabilize ("stabilize") |
26 |
| KW_string ("string") |
| KW_string ("string") |
27 |
| KW_tensor ("tensor") |
| KW_tensor ("tensor") |
28 |
| KW_vec ("vec") |
| KW_vec2 ("vec2") |
29 |
|
| KW_vec3 ("vec3") |
30 |
|
| KW_vec4 ("vec4") |
31 |
| OP_eq ("=") |
| OP_eq ("=") |
32 |
| OP_orelse ("||") |
| OP_orelse ("||") |
33 |
| OP_andalso ("&&") |
| OP_andalso ("&&") |
215 |
|
|
216 |
(***** Types *****) |
(***** Types *****) |
217 |
|
|
218 |
Type : "image" Dimensions "[" Dimension "]" |
Type : "image" "(" Dimension ")" Dimensions |
219 |
=> (markTy(FULL_SPAN, PT.T_Image{ |
=> (markTy(FULL_SPAN, PT.T_Image{ |
220 |
order = Dimensions, dim = Dimension |
order = Dimensions, dim = Dimension |
221 |
})) |
})) |
222 |
| "field" "#" Dimension Dimensions "[" Dimension "]" |
| "field" "#" Dimension "(" Dimension ")" Dimensions |
223 |
=> (markTy(FULL_SPAN, PT.T_Field{ |
=> (markTy(FULL_SPAN, PT.T_Field{ |
224 |
diff = Dimension1, |
diff = Dimension1, |
225 |
order = Dimensions, |
order = Dimensions, |
237 |
ValueType |
ValueType |
238 |
: "tensor" Dimensions |
: "tensor" Dimensions |
239 |
=> (markTy(FULL_SPAN, PT.T_Tensor Dimensions)) |
=> (markTy(FULL_SPAN, PT.T_Tensor Dimensions)) |
240 |
| "vec" "<" Dimension ">" |
| "vec2" |
241 |
=> (markTy(FULL_SPAN, PT.T_Vec Dimension)) |
=> (markTy(FULL_SPAN, PT.T_Vec 2)) |
242 |
|
| "vec3" |
243 |
|
=> (markTy(FULL_SPAN, PT.T_Vec 3)) |
244 |
|
| "vec4" |
245 |
|
=> (markTy(FULL_SPAN, PT.T_Vec 4)) |
246 |
| "bool" |
| "bool" |
247 |
=> (markTy(FULL_SPAN, PT.T_Bool)) |
=> (markTy(FULL_SPAN, PT.T_Bool)) |
248 |
| "int" |
| "int" |
254 |
; |
; |
255 |
|
|
256 |
Dimensions |
Dimensions |
257 |
: (* empty *) |
: "[" ( Dimension ("," Dimension)* )? "]" |
|
=> ([]) |
|
|
| "<" ( Dimension ("," Dimension)* )? ">" |
|
258 |
=> (flatten SR) |
=> (flatten SR) |
259 |
; |
; |
260 |
|
|