Bases: CustomDirective
Custom directive for parsing/printing dimension list.
These look like (e.g.) 3x?x5x2, or [] to denote empty
Source code in xdsl/dialects/utils/dimension_list.py
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58 | @irdl_custom_directive
class DimensionList(CustomDirective):
"""
Custom directive for parsing/printing dimension list.
These look like (e.g.) 3x?x5x2, or [] to denote empty
"""
dimensions: AttributeVariable
def parse(self, parser: Parser, state: ParsingState) -> bool:
dims = []
if not parse_empty_dimension_list_directive(parser):
dims = parser.parse_dimension_list()
self.dimensions.set(state, DenseArrayBase[I64].from_list(i64, dims))
return True
def print(self, printer: Printer, state: PrintingState, op: IRDLOperation) -> None:
state.print_whitespace(printer)
dims = self.dimensions.get(op)
assert isa(dims, DenseArrayBase[IntegerType])
values = dims.get_values()
if not values:
print_empty_dimension_list_directive(printer)
return
printer.print_dimension_list(values)
|
dimensions: AttributeVariable
instance-attribute
parse(parser: Parser, state: ParsingState) -> bool
Source code in xdsl/dialects/utils/dimension_list.py
37
38
39
40
41
42
43
44
45 | def parse(self, parser: Parser, state: ParsingState) -> bool:
dims = []
if not parse_empty_dimension_list_directive(parser):
dims = parser.parse_dimension_list()
self.dimensions.set(state, DenseArrayBase[I64].from_list(i64, dims))
return True
|
print(printer: Printer, state: PrintingState, op: IRDLOperation) -> None
Source code in xdsl/dialects/utils/dimension_list.py
47
48
49
50
51
52
53
54
55
56
57
58 | def print(self, printer: Printer, state: PrintingState, op: IRDLOperation) -> None:
state.print_whitespace(printer)
dims = self.dimensions.get(op)
assert isa(dims, DenseArrayBase[IntegerType])
values = dims.get_values()
if not values:
print_empty_dimension_list_directive(printer)
return
printer.print_dimension_list(values)
|