Reference: Abstract Syntax Trees

Added in version 2014.1.

Symbolic Constants

class islpy.ast_expr_op_type(*values)
access = 23
add = 7
address_of = 25
and_ = 0
and_then = 1
call = 22
cond = 15
div = 10
eq = 17
error = -1
fdiv_q = 11
ge = 20
gt = 21
le = 18
lt = 19
max = 4
member = 24
min = 5
minus = 6
mul = 9
or_ = 2
or_else = 3
pdiv_q = 12
pdiv_r = 13
select = 16
sub = 8
zdiv_r = 14
class islpy.ast_expr_type(*values)
error = -1
id = 1
int = 2
op = 0
class islpy.ast_node_type(*values)
block = 3
error = -1
for_ = 1
if_ = 2
mark = 4
user = 5
class islpy.ast_loop_type(*values)
atomic = 1
default = 0
error = -1
separate = 3
unroll = 2

AST Expression

class islpy.AstExpr
__eq__(other: object) bool

Return self==value.

__hash__()

Return hash(self).

__ne__(other: object) bool

Return self!=value.

access(self, indices: AstExprList) AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

add(self, expr2: AstExpr) AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

address_of(self) AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

and_(self, expr2: AstExpr) AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

and_then(self, expr2: AstExpr) AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

call(self, arguments: AstExprList) AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

copy(self) AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

div(self, expr2: AstExpr) AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

dump(self) None

Warning

This function is not part of the officially public isl API. Use at your own risk.

eq(self, expr2: AstExpr) AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

from_id = <nanobind.nb_func object>
from_val = <nanobind.nb_func object>
ge(self, expr2: AstExpr) AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

get_ctx(self) Context

Warning

This function is not part of the officially public isl API. Use at your own risk.

get_id(self) Id

Warning

This function is not part of the officially public isl API. Use at your own risk.

get_op_arg(self, pos: int) AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

get_op_n_arg(self) int

Warning

This function is not part of the officially public isl API. Use at your own risk.

get_op_type(self) int

Warning

This function is not part of the officially public isl API. Use at your own risk.

get_type(self) int

Warning

This function is not part of the officially public isl API. Use at your own risk.

get_val(self) Val

Warning

This function is not part of the officially public isl API. Use at your own risk.

gt(self, expr2: AstExpr) AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

id_get_id(self) Id
int_get_val(self) Val
is_equal(self, expr2: AstExpr) bool

Warning

This function is not part of the officially public isl API. Use at your own risk.

le(self, expr2: AstExpr) AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

lt(self, expr2: AstExpr) AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

mul(self, expr2: AstExpr) AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

neg(self) AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

op_get_arg(self, pos: int) AstExpr
op_get_n_arg(self) int
op_get_type(self) int

Warning

This function is not part of the officially public isl API. Use at your own risk.

op_type_set_print_name = <nanobind.nb_func object>
or_(self, expr2: AstExpr) AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

or_else(self, expr2: AstExpr) AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

pdiv_q(self, expr2: AstExpr) AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

pdiv_r(self, expr2: AstExpr) AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_macros(self, p: Printer) Printer
..note::

{arg.name} becomes invalid)

Warning

This function is not part of the officially public isl API. Use at your own risk.

set_op_arg(self, pos: int, arg: AstExpr) AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

sub(self, expr2: AstExpr) AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

substitute_ids(self, id2expr: IdToAstExpr) AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

to_C_str(self) str
to_list(self) AstExprList

Warning

This function is not part of the officially public isl API. Use at your own risk.

to_str(self) str

Warning

This function is not part of the officially public isl API. Use at your own risk.

AST Node

class islpy.AstNode
__eq__(value, /)

Return self==value.

__hash__()

Return hash(self).

__ne__(value, /)

Return self!=value.

alloc_user = <nanobind.nb_func object>
block_get_children(self) AstNodeList
copy(self) AstNode

Warning

This function is not part of the officially public isl API. Use at your own risk.

dump(self) None

Warning

This function is not part of the officially public isl API. Use at your own risk.

for_get_body(self) AstNode
for_get_cond(self) AstExpr
for_get_inc(self) AstExpr
for_get_init(self) AstExpr
for_get_iterator(self) AstExpr
for_is_degenerate(self) bool
for_print(self, p: Printer, options: AstPrintOptions) Printer
..note::

{arg.name} becomes invalid)

Warning

This function is not part of the officially public isl API. Use at your own risk.

foreach_descendant_top_down(self, fn: Callable[[AstNode], bool]) None
Parameters:

fn – callback(node)

Warning

This function is not part of the officially public isl API. Use at your own risk.

get_annotation(self) Id

Warning

This function is not part of the officially public isl API. Use at your own risk.

get_ctx(self) Context

Warning

This function is not part of the officially public isl API. Use at your own risk.

get_type(self) int

Warning

This function is not part of the officially public isl API. Use at your own risk.

if_get_cond(self) AstExpr
if_get_else(self) AstNode

Warning

This function is not part of the officially public isl API. Use at your own risk.

if_get_else_node(self) AstNode
if_get_then(self) AstNode

Warning

This function is not part of the officially public isl API. Use at your own risk.

if_get_then_node(self) AstNode
if_has_else(self) bool

Warning

This function is not part of the officially public isl API. Use at your own risk.

if_has_else_node(self) bool
if_print(self, p: Printer, options: AstPrintOptions) Printer
..note::

{arg.name} becomes invalid)

Warning

This function is not part of the officially public isl API. Use at your own risk.

map_descendant_bottom_up(self, fn: Callable[[AstNode], AstNode]) AstNode
Parameters:

fn – callback(node)

mark_get_id(self) Id
mark_get_node(self) AstNode
print_(self, p: Printer, options: AstPrintOptions) Printer
..note::

{arg.name} becomes invalid)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_macros(self, p: Printer) Printer
..note::

{arg.name} becomes invalid)

Warning

This function is not part of the officially public isl API. Use at your own risk.

set_annotation(self, annotation: Id) AstNode

Warning

This function is not part of the officially public isl API. Use at your own risk.

to_C_str(self) str
to_list(self) AstNodeList
to_str(self) str

Warning

This function is not part of the officially public isl API. Use at your own risk.

user_from_expr = <nanobind.nb_func object>
user_get_expr(self) AstExpr

AST Build

class islpy.AstBuild
__eq__(value, /)

Return self==value.

__hash__()

Return hash(self).

__ne__(value, /)

Return self!=value.

access_from_multi_pw_aff(self, mpa: MultiPwAff) AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

access_from_pw_multi_aff(self, pma: PwMultiAff | MultiAff) AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

alloc = <nanobind.nb_func object>
ast_from_schedule(self, schedule: UnionMap | BasicMap | Map) AstNode

Warning

This function is not part of the officially public isl API. Use at your own risk.

call_from_multi_pw_aff(self, mpa: MultiPwAff) AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

call_from_pw_multi_aff(self, pma: PwMultiAff | MultiAff) AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

copy(self) AstBuild

Warning

This function is not part of the officially public isl API. Use at your own risk.

expr_from_pw_aff(self, pa: PwAff | Aff) AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

expr_from_set(self, set: Set | BasicSet) AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

from_context = <nanobind.nb_func object>
get_ctx(self) Context

Warning

This function is not part of the officially public isl API. Use at your own risk.

get_schedule(self) UnionMap
get_schedule_space(self) Space

Warning

This function is not part of the officially public isl API. Use at your own risk.

node_from_schedule(self, schedule: Schedule) AstNode

Warning

This function is not part of the officially public isl API. Use at your own risk.

node_from_schedule_map(self, schedule: UnionMap | BasicMap | Map) AstNode
restrict(self, set: Set | BasicSet) AstBuild

Warning

This function is not part of the officially public isl API. Use at your own risk.

set_after_each_for(self, fn: Callable[[AstNode, AstBuild], AstNode]) tuple[AstBuild, CallbackLifetimeHandle]
Parameters:

fn – callback(node, build)

Warning

This function is not part of the officially public isl API. Use at your own risk.

set_after_each_mark(self, fn: Callable[[AstNode, AstBuild], AstNode]) tuple[AstBuild, CallbackLifetimeHandle]
Parameters:

fn – callback(node, build)

Warning

This function is not part of the officially public isl API. Use at your own risk.

set_at_each_domain(self, fn: Callable[[AstNode, AstBuild], AstNode]) tuple[AstBuild, CallbackLifetimeHandle]
Parameters:

fn – callback(node, build)

set_before_each_for(self, fn: Callable[[AstBuild], Id]) tuple[AstBuild, CallbackLifetimeHandle]
Parameters:

fn – callback(build)

Warning

This function is not part of the officially public isl API. Use at your own risk.

set_before_each_mark(self, fn: Callable[[Id, AstBuild], None]) tuple[AstBuild, CallbackLifetimeHandle]
Parameters:

fn – callback(mark, build)

Warning

This function is not part of the officially public isl API. Use at your own risk.

set_create_leaf(self, fn: Callable[[AstBuild], AstNode]) tuple[AstBuild, CallbackLifetimeHandle]
Parameters:

fn – callback(build)

Warning

This function is not part of the officially public isl API. Use at your own risk.

set_iterators(self, iterators: IdList) AstBuild

Warning

This function is not part of the officially public isl API. Use at your own risk.

set_options(self, options: UnionMap | BasicMap | Map) AstBuild

Warning

This function is not part of the officially public isl API. Use at your own risk.

AST Print Options

class islpy.AstPrintOptions
__eq__(value, /)

Return self==value.

__hash__()

Return hash(self).

__ne__(value, /)

Return self!=value.

alloc = <nanobind.nb_func object>
copy(self) AstPrintOptions

Warning

This function is not part of the officially public isl API. Use at your own risk.

get_ctx(self) Context

Warning

This function is not part of the officially public isl API. Use at your own risk.

set_print_for(self, print_for: Callable[[Printer, AstPrintOptions, AstNode], Printer]) tuple[AstPrintOptions, CallbackLifetimeHandle]
Parameters:

print_for – callback(p, options, node)

Warning

This function is not part of the officially public isl API. Use at your own risk.

set_print_user(self, print_user: Callable[[Printer, AstPrintOptions, AstNode], Printer]) tuple[AstPrintOptions, CallbackLifetimeHandle]
Parameters:

print_user – callback(p, options, node)

Warning

This function is not part of the officially public isl API. Use at your own risk.

Canonical Names for Internal Module

class islpy._isl.ast_expr_op_type

See islpy.ast_expr_op_type.

class islpy._isl.ast_expr_type

See islpy.ast_expr_type.

class islpy._isl.ast_node_type

See islpy.ast_node_type.

class islpy._isl.ast_loop_type

See islpy.ast_loop_type.

class islpy._isl.AstExpr

See islpy.AstExpr.

class islpy._isl.AstNode

See islpy.AstNode.

class islpy._isl.AstBuild

See islpy.AstBuild.

class islpy._isl.AstPrintOptions

See islpy.AstPrintOptions.