Skip to content

UniIR Nodes

Enum#

flowchart LR
Enum -->|Name| name
Enum -->|Token , None| access
Enum -->|Expr , None| base_classes
Enum -->|EnumBlockStmt , ImplDef , None| body
Enum -->|String , None| doc
Enum -->|Expr , None| decorators

None

Name#

flowchart LR
Name -->|Source| orig_src
Name -->|str| name
Name -->|str| value
Name -->|int| end_line
Name -->|int| col_start
Name -->|int| col_end_
Name -->|int| pos_start
Name -->|int| pos_end_
Name -->|bool| is_enum_stmt
Name -->|bool| is_kwesc

None

SubTag#

flowchart LR
SubTag -->|T| tag

None

Module#

flowchart LR
Module -->|str| name
Module -->|Source| source
Module -->|String , None| doc
Module -->|ElementStmt , String , EmptyToken| body
Module -->|list - Token| terminals
Module -->|bool| stub_only

None

TypeParam#

flowchart LR
TypeParam -->|Name| name
TypeParam -->|Expr , None| bound
TypeParam -->|Expr , None| default_val

None

TypeAlias#

flowchart LR
TypeAlias -->|Name| name
TypeAlias -->|TypeParam , None| type_params
TypeAlias -->|Expr| value
TypeAlias -->|Token , None| access
TypeAlias -->|String , None| doc

None

GlobalVars#

flowchart LR
GlobalVars -->|Token , None| access
GlobalVars -->|Assignment| assignments
GlobalVars -->|bool| is_frozen
GlobalVars -->|String , None| doc

None

Test#

flowchart LR
Test -->|Name , Token| name
Test -->|CodeBlockStmt| body
Test -->|String , None| doc
Test -->|String , None| description

None

ModuleCode#

flowchart LR
ModuleCode -->|Name , None| name
ModuleCode -->|CodeBlockStmt| body
ModuleCode -->|bool| is_enum_stmt
ModuleCode -->|String , None| doc

None

ClientBlock#

flowchart LR
ClientBlock -->|ElementStmt| body
ClientBlock -->|bool| implicit

None

ServerBlock#

flowchart LR
ServerBlock -->|ElementStmt| body
ServerBlock -->|bool| implicit

None

NativeBlock#

flowchart LR
NativeBlock -->|ElementStmt| body
NativeBlock -->|bool| implicit

None

PyInlineCode#

flowchart LR
PyInlineCode -->|Token| code
PyInlineCode -->|bool| is_enum_stmt
PyInlineCode -->|String , None| doc

None

Import#

flowchart LR
Import -->|ModulePath , None| from_loc
Import -->|ModuleItem , ModulePath| items
Import -->|bool| is_absorb
Import -->|String , None| doc

None

ModulePath#

flowchart LR
ModulePath -->|Name , String , None| path
ModulePath -->|int| level
ModulePath -->|Name , None| alias

None

ModuleItem#

flowchart LR
ModuleItem -->|Name , Token| name
ModuleItem -->|Name , None| alias

None

Archetype#

flowchart LR
Archetype -->|Name| name
Archetype -->|Token| arch_type
Archetype -->|Token , None| access
Archetype -->|Expr , None| base_classes
Archetype -->|ArchBlockStmt , ImplDef , None| body
Archetype -->|String , None| doc
Archetype -->|Expr , None| decorators
Archetype -->|TypeParam , None| type_params

None

ImplDef#

flowchart LR
ImplDef -->|Expr , None| decorators
ImplDef -->|NameAtom| target
ImplDef -->|Expr , FuncSignature , EventSignature , None| spec
ImplDef -->|CodeBlockStmt , EnumBlockStmt , Expr| body
ImplDef -->|String , None| doc
ImplDef -->|UniNode , None| decl_link

None

SemDef#

flowchart LR
SemDef -->|NameAtom| target
SemDef -->|String| value

None

Ability#

flowchart LR
Ability -->|NameAtom , None| name_ref
Ability -->|bool| is_async
Ability -->|bool| is_override
Ability -->|bool| is_static
Ability -->|bool| is_abstract
Ability -->|Token , None| access
Ability -->|FuncSignature , EventSignature , None| signature
Ability -->|CodeBlockStmt , ImplDef , Expr , None| body
Ability -->|String , None| doc
Ability -->|Expr , None| decorators

None

FuncSignature#

flowchart LR
FuncSignature -->|ParamVar| posonly_params
FuncSignature -->|ParamVar , None| params
FuncSignature -->|ParamVar , None| varargs
FuncSignature -->|ParamVar| kwonlyargs
FuncSignature -->|ParamVar , None| kwargs
FuncSignature -->|Expr , None| return_type

None

EventSignature#

flowchart LR
EventSignature -->|Token| event
EventSignature -->|Expr , None| arch_tag_info

None

ParamVar#

flowchart LR
ParamVar -->|Name| name
ParamVar -->|Token , None| unpack
ParamVar -->|Expr| type_tag
ParamVar -->|Expr , None| value

None

ArchHas#

flowchart LR
ArchHas -->|bool| is_static
ArchHas -->|Token , None| access
ArchHas -->|HasVar| vars
ArchHas -->|bool| is_frozen
ArchHas -->|String , None| doc

None

HasVar#

flowchart LR
HasVar -->|Name| name
HasVar -->|Expr| type_tag
HasVar -->|Expr , None| value
HasVar -->|bool| defer

None

TypedCtxBlock#

flowchart LR
TypedCtxBlock -->|Expr| type_ctx
TypedCtxBlock -->|CodeBlockStmt| body

None

IfStmt#

flowchart LR
IfStmt -->|Expr| condition
IfStmt -->|CodeBlockStmt| body
IfStmt -->|ElseStmt , ElseIf , None| else_body

None

ElseIf#

flowchart LR
ElseIf -->|Expr| condition
ElseIf -->|CodeBlockStmt| body
ElseIf -->|ElseStmt , ElseIf , None| else_body

None

ElseStmt#

flowchart LR
ElseStmt -->|CodeBlockStmt| body

None

ExprStmt#

flowchart LR
ExprStmt -->|Expr| expr
ExprStmt -->|bool| in_fstring

None

TryStmt#

flowchart LR
TryStmt -->|CodeBlockStmt| body
TryStmt -->|Except| excepts
TryStmt -->|ElseStmt , None| else_body
TryStmt -->|FinallyStmt , None| finally_body

None

Except#

flowchart LR
Except -->|Expr| ex_type
Except -->|Name , None| name
Except -->|CodeBlockStmt| body

None

FinallyStmt#

flowchart LR
FinallyStmt -->|CodeBlockStmt| body

None

IterForStmt#

flowchart LR
IterForStmt -->|Assignment| iter
IterForStmt -->|bool| is_async
IterForStmt -->|Expr| condition
IterForStmt -->|Assignment| count_by
IterForStmt -->|CodeBlockStmt| body
IterForStmt -->|ElseStmt , None| else_body

None

InForStmt#

flowchart LR
InForStmt -->|Expr| target
InForStmt -->|bool| is_async
InForStmt -->|Expr| collection
InForStmt -->|CodeBlockStmt| body
InForStmt -->|ElseStmt , None| else_body

None

WhileStmt#

flowchart LR
WhileStmt -->|Expr| condition
WhileStmt -->|CodeBlockStmt| body
WhileStmt -->|ElseStmt , None| else_body

None

WithStmt#

flowchart LR
WithStmt -->|bool| is_async
WithStmt -->|ExprAsItem| exprs
WithStmt -->|CodeBlockStmt| body

None

ExprAsItem#

flowchart LR
ExprAsItem -->|Expr| expr
ExprAsItem -->|Expr , None| alias

None

RaiseStmt#

flowchart LR
RaiseStmt -->|Expr , None| cause
RaiseStmt -->|Expr , None| from_target

None

AssertStmt#

flowchart LR
AssertStmt -->|Expr| condition
AssertStmt -->|Expr , None| error_msg

None

CtrlStmt#

flowchart LR
CtrlStmt -->|Token| ctrl

None

DeleteStmt#

flowchart LR
DeleteStmt -->|Expr| target

None

ReportStmt#

flowchart LR
ReportStmt -->|Expr| expr

None

ReturnStmt#

flowchart LR
ReturnStmt -->|Expr , None| expr

None

VisitStmt#

flowchart LR
VisitStmt -->|Expr , None| insert_loc
VisitStmt -->|Expr| target
VisitStmt -->|ElseStmt , None| else_body

None

AwaitExpr#

flowchart LR
AwaitExpr -->|Expr| target

None

GlobalStmt#

flowchart LR
GlobalStmt -->|NameAtom| target

None

NonLocalStmt#

flowchart LR
NonLocalStmt -->|NameAtom| target

None

Assignment#

flowchart LR
Assignment -->|Expr| target
Assignment -->|Expr , YieldExpr , None| value
Assignment -->|Expr , None| type_tag
Assignment -->|bool| mutable
Assignment -->|Token , None| aug_op
Assignment -->|bool| is_enum_stmt

None

ConcurrentExpr#

flowchart LR
ConcurrentExpr -->|Token , None| tok
ConcurrentExpr -->|Expr| target

None

BinaryExpr#

flowchart LR
BinaryExpr -->|Expr| left
BinaryExpr -->|Expr| right
BinaryExpr -->|Token , DisconnectOp , ConnectOp| op

None

CompareExpr#

flowchart LR
CompareExpr -->|Expr| left
CompareExpr -->|list - Expr| rights
CompareExpr -->|list - Token| ops

None

Bool#

flowchart LR
Bool -->|Source| orig_src
Bool -->|str| name
Bool -->|str| value
Bool -->|int| end_line
Bool -->|int| col_start
Bool -->|int| col_end_
Bool -->|int| pos_start
Bool -->|int| pos_end_

None

BoolExpr#

flowchart LR
BoolExpr -->|Token| op
BoolExpr -->|list - Expr| values

None

LambdaExpr#

flowchart LR
LambdaExpr -->|Expr , CodeBlockStmt| body
LambdaExpr -->|FuncSignature , None| signature

None

UnaryExpr#

flowchart LR
UnaryExpr -->|Expr| operand
UnaryExpr -->|Token| op

None

IfElseExpr#

flowchart LR
IfElseExpr -->|Expr| condition
IfElseExpr -->|Expr| value
IfElseExpr -->|Expr| else_value

None

MultiString#

flowchart LR
MultiString -->|String , FString| strings

None

FString#

flowchart LR
FString -->|Token , None| start
FString -->|String , FormattedValue| parts
FString -->|Token , None| end

None

FormattedValue#

flowchart LR
FormattedValue -->|Expr| format_part
FormattedValue -->|int| conversion
FormattedValue -->|Expr , None| format_spec

None

ListVal#

flowchart LR
ListVal -->|Expr| values

None

SetVal#

flowchart LR
SetVal -->|Expr , None| values

None

TupleVal#

flowchart LR
TupleVal -->|Expr , KWPair| values

None

DictVal#

flowchart LR
DictVal -->|KVPair| kv_pairs

None

KVPair#

flowchart LR
KVPair -->|Expr , None| key
KVPair -->|Expr| value

None

KWPair#

flowchart LR
KWPair -->|NameAtom , None| key
KWPair -->|Expr| value

None

InnerCompr#

flowchart LR
InnerCompr -->|bool| is_async
InnerCompr -->|Expr| target
InnerCompr -->|Expr| collection
InnerCompr -->|list - Expr , None| conditional

None

ListCompr#

flowchart LR
ListCompr -->|Expr| out_expr
ListCompr -->|list - InnerCompr| compr

None

GenCompr#

flowchart LR
GenCompr -->|Expr| out_expr
GenCompr -->|list - InnerCompr| compr

None

SetCompr#

flowchart LR
SetCompr -->|Expr| out_expr
SetCompr -->|list - InnerCompr| compr

None

DictCompr#

flowchart LR
DictCompr -->|KVPair| kv_pair
DictCompr -->|list - InnerCompr| compr

None

AtomTrailer#

flowchart LR
AtomTrailer -->|Expr| target
AtomTrailer -->|AtomExpr , Expr| right
AtomTrailer -->|bool| is_attr
AtomTrailer -->|bool| is_null_ok
AtomTrailer -->|bool| is_genai

None

AtomUnit#

flowchart LR
AtomUnit -->|Expr , YieldExpr , Ability| value

None

YieldExpr#

flowchart LR
YieldExpr -->|Expr , None| expr
YieldExpr -->|bool| with_from

None

FuncCall#

flowchart LR
FuncCall -->|Expr| target
FuncCall -->|Expr , KWPair , None| params
FuncCall -->|Expr , None| genai_call

None

IndexSlice#

flowchart LR
IndexSlice -->|list - Slice| slices
IndexSlice -->|bool| is_range

Slice node type for Jac Ast.

EdgeRefTrailer#

flowchart LR
EdgeRefTrailer -->|list - Expr , FilterCompr| chain
EdgeRefTrailer -->|bool| edges_only
EdgeRefTrailer -->|bool| is_async

None

EdgeOpRef#

flowchart LR
EdgeOpRef -->|FilterCompr , None| filter_cond
EdgeOpRef -->|EdgeDir| edge_dir

None

DisconnectOp#

flowchart LR
DisconnectOp -->|EdgeOpRef| edge_spec

None

ConnectOp#

flowchart LR
ConnectOp -->|Expr , None| conn_type
ConnectOp -->|AssignCompr , None| conn_assign
ConnectOp -->|EdgeDir| edge_dir

None

FilterCompr#

flowchart LR
FilterCompr -->|Expr , None| f_type
FilterCompr -->|CompareExpr| compares

None

AssignCompr#

flowchart LR
AssignCompr -->|KWPair| assigns

None

JsxElement#

flowchart LR
JsxElement -->|JsxElementName , None| name
JsxElement -->|JsxAttribute , None| attributes
JsxElement -->|JsxChild , JsxElement , None| children
JsxElement -->|bool| is_self_closing
JsxElement -->|bool| is_fragment

None

JsxElementName#

flowchart LR
JsxElementName -->|Name , Token| parts

None

JsxSpreadAttribute#

flowchart LR
JsxSpreadAttribute -->|Expr| expr

None

JsxNormalAttribute#

flowchart LR
JsxNormalAttribute -->|Name , Token| name
JsxNormalAttribute -->|String , Expr , None| value

None

JsxText#

flowchart LR
JsxText -->|str , Token| value

None

JsxExpression#

flowchart LR
JsxExpression -->|Expr| expr

None

MatchStmt#

flowchart LR
MatchStmt -->|Expr| target
MatchStmt -->|list - MatchCase| cases

None

MatchCase#

flowchart LR
MatchCase -->|MatchPattern| pattern
MatchCase -->|Expr , None| guard
MatchCase -->|list - CodeBlockStmt| body

None

SwitchStmt#

flowchart LR
SwitchStmt -->|Expr| target
SwitchStmt -->|list - SwitchCase| cases

None

SwitchCase#

flowchart LR
SwitchCase -->|MatchPattern , None| pattern
SwitchCase -->|list - CodeBlockStmt| body

None

MatchOr#

flowchart LR
MatchOr -->|list - MatchPattern| patterns

None

MatchAs#

flowchart LR
MatchAs -->|NameAtom| name
MatchAs -->|MatchPattern , None| pattern

None

MatchValue#

flowchart LR
MatchValue -->|Expr| value

None

MatchSingleton#

flowchart LR
MatchSingleton -->|Bool , Null| value

None

MatchSequence#

flowchart LR
MatchSequence -->|list - MatchPattern| values

None

MatchMapping#

flowchart LR
MatchMapping -->|list - MatchKVPair , MatchStar| values

None

MatchKVPair#

flowchart LR
MatchKVPair -->|MatchPattern , NameAtom , AtomExpr| key
MatchKVPair -->|MatchPattern| value

None

MatchStar#

flowchart LR
MatchStar -->|NameAtom| name
MatchStar -->|bool| is_list

None

MatchArch#

flowchart LR
MatchArch -->|AtomTrailer , NameAtom| name
MatchArch -->|MatchPattern , None| arg_patterns
MatchArch -->|MatchKVPair , None| kw_patterns

None

Token#

flowchart LR
Token -->|Source| orig_src
Token -->|str| name
Token -->|str| value
Token -->|int| end_line
Token -->|int| col_start
Token -->|int| col_end_
Token -->|int| pos_start
Token -->|int| pos_end_

None

SpecialVarRef#

flowchart LR
SpecialVarRef -->|Name| var
SpecialVarRef -->|bool| is_enum_stmt

None

BuiltinType#

flowchart LR
BuiltinType -->|Source| orig_src
BuiltinType -->|str| name
BuiltinType -->|str| value
BuiltinType -->|int| end_line
BuiltinType -->|int| col_start
BuiltinType -->|int| col_end_
BuiltinType -->|int| pos_start
BuiltinType -->|int| pos_end_
BuiltinType -->|bool| is_enum_stmt
BuiltinType -->|bool| is_kwesc

None

Float#

flowchart LR
Float -->|Source| orig_src
Float -->|str| name
Float -->|str| value
Float -->|int| end_line
Float -->|int| col_start
Float -->|int| col_end_
Float -->|int| pos_start
Float -->|int| pos_end_

None

Int#

flowchart LR
Int -->|Source| orig_src
Int -->|str| name
Int -->|str| value
Int -->|int| end_line
Int -->|int| col_start
Int -->|int| col_end_
Int -->|int| pos_start
Int -->|int| pos_end_

None

String#

flowchart LR
String -->|Source| orig_src
String -->|str| name
String -->|str| value
String -->|int| end_line
String -->|int| col_start
String -->|int| col_end_
String -->|int| pos_start
String -->|int| pos_end_

None

Null#

flowchart LR
Null -->|Source| orig_src
Null -->|str| name
Null -->|str| value
Null -->|int| end_line
Null -->|int| col_start
Null -->|int| col_end_
Null -->|int| pos_start
Null -->|int| pos_end_

None

Ellipsis#

flowchart LR
Ellipsis -->|Source| orig_src
Ellipsis -->|str| name
Ellipsis -->|str| value
Ellipsis -->|int| end_line
Ellipsis -->|int| col_start
Ellipsis -->|int| col_end_
Ellipsis -->|int| pos_start
Ellipsis -->|int| pos_end_

None

Semi#

flowchart LR
Semi -->|Source| orig_src
Semi -->|str| name
Semi -->|str| value
Semi -->|int| end_line
Semi -->|int| col_start
Semi -->|int| col_end_
Semi -->|int| pos_start
Semi -->|int| pos_end_

Initialize token.

CommentToken#

flowchart LR
CommentToken -->|Source| orig_src
CommentToken -->|str| name
CommentToken -->|str| value
CommentToken -->|int| end_line
CommentToken -->|int| col_start
CommentToken -->|int| col_end_
CommentToken -->|int| pos_start
CommentToken -->|int| pos_end_
CommentToken -->|bool| is_inline

None