Skip to content

Ast doc

Enum#

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

Enum node type for Jac Ast.

Name#

flowchart LR
Name -->|str| file_path
Name -->|str| name
Name -->|str| value
Name -->|int| col_start
Name -->|int| col_end_
Name -->|int| pos_start
Name -->|int| pos_end_
Name -->|bool| is_enum_singleton
Name -->|bool| is_kwesc

Name node type for Jac Ast.

SubTag#

flowchart LR
SubTag -->|T| tag

SubTag node type for Jac Ast.

SubNodeList#

flowchart LR
SubNodeList -->|list - T| items

SubNodeList node type for Jac Ast.

Module#

flowchart LR
Module -->|str| name
Module -->|JacSource| source
Module -.->|String| doc
Module -->|ElementStmt , String| body
Module -->|bool| is_imported

Whole Program node type for Jac Ast.

GlobalVars#

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

GlobalVars node type for Jac Ast.

Test#

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

Test node type for Jac Ast.

ModuleCode#

flowchart LR
ModuleCode -.->|Name| name
ModuleCode -->|CodeBlockStmt| body
ModuleCode -.->|String| doc

Free mod code for Jac Ast.

PyInlineCode#

flowchart LR
PyInlineCode -->|Token| code
PyInlineCode -.->|String| doc

Inline Python code node type for Jac Ast.

Import#

flowchart LR
Import -->|Name| lang
Import -->|ModulePath| path
Import -.->|ModuleItem| items
Import -->|bool| is_absorb
Import -.->|String| doc
Import -.->|Module| sub_module

Import node type for Jac Ast.

ModulePath#

flowchart LR
ModulePath -->|Token| path
ModulePath -.->|Name| alias

ModulePath node type for Jac Ast.

ModuleItem#

flowchart LR
ModuleItem -->|Name| name
ModuleItem -.->|Name| alias

ModuleItem node type for Jac Ast.

Architype#

flowchart LR
Architype -->|Name| name
Architype -->|Token| arch_type
Architype -.->|Token| access
Architype -.->|Expr| base_classes
Architype -.->|ArchBlockStmt , ArchDef| body
Architype -.->|String| doc
Architype -.->|Expr| decorators

ObjectArch node type for Jac Ast.

ArchDef#

flowchart LR
ArchDef -->|ArchRefChain| target
ArchDef -->|ArchBlockStmt| body
ArchDef -.->|String| doc
ArchDef -.->|Expr| decorators
ArchDef -.->|Architype| decl_link

ArchDef node type for Jac Ast.

EnumDef#

flowchart LR
EnumDef -->|ArchRefChain| target
EnumDef -->|EnumBlockStmt| body
EnumDef -.->|String| doc
EnumDef -.->|Expr| decorators
EnumDef -.->|Enum| decl_link

EnumDef node type for Jac Ast.

Ability#

flowchart LR
Ability -->|NameSpec| name_ref
Ability -->|bool| is_func
Ability -->|bool| is_async
Ability -->|bool| is_static
Ability -->|bool| is_abstract
Ability -.->|Token| access
Ability -.->|FuncSignature , Expr , EventSignature| signature
Ability -.->|CodeBlockStmt , AbilityDef| body
Ability -.->|String| doc
Ability -.->|Expr| decorators

Ability node type for Jac Ast.

AbilityDef#

flowchart LR
AbilityDef -->|ArchRefChain| target
AbilityDef -->|FuncSignature , EventSignature| signature
AbilityDef -->|CodeBlockStmt| body
AbilityDef -.->|String| doc
AbilityDef -.->|Expr| decorators
AbilityDef -.->|Ability| decl_link

AbilityDef node type for Jac Ast.

FuncSignature#

flowchart LR
FuncSignature -.->|ParamVar| params
FuncSignature -.->|Expr| return_type

FuncSignature node type for Jac Ast.

EventSignature#

flowchart LR
EventSignature -->|Token| event
EventSignature -.->|Expr| arch_tag_info
EventSignature -.->|Expr| return_type

EventSignature node type for Jac Ast.

ArchRef#

flowchart LR
ArchRef -->|NameSpec| name_ref
ArchRef -->|Token| arch

ArchRef node type for Jac Ast.

ArchRefChain#

flowchart LR
ArchRefChain -->|list - ArchRef| archs

Arch ref list node type for Jac Ast.

ParamVar#

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

ParamVar node type for Jac Ast.

ArchHas#

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

HasStmt node type for Jac Ast.

HasVar#

flowchart LR
HasVar -->|Name| name
HasVar -->|Expr| type_tag
HasVar -.->|Expr| value

HasVar node type for Jac Ast.

TypedCtxBlock#

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

TypedCtxBlock node type for Jac Ast.

IfStmt#

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

IfStmt node type for Jac Ast.

ElseIf#

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

ElseIfs node type for Jac Ast.

ElseStmt#

flowchart LR
ElseStmt -->|CodeBlockStmt| body

Else node type for Jac Ast.

ExprStmt#

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

ExprStmt node type for Jac Ast.

TryStmt#

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

TryStmt node type for Jac Ast.

Except#

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

Except node type for Jac Ast.

FinallyStmt#

flowchart LR
FinallyStmt -->|CodeBlockStmt| body

FinallyStmt node type for Jac Ast.

IterForStmt#

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

IterFor node type for Jac Ast.

InForStmt#

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

InFor node type for Jac Ast.

WhileStmt#

flowchart LR
WhileStmt -->|Expr| condition
WhileStmt -->|CodeBlockStmt| body

WhileStmt node type for Jac Ast.

WithStmt#

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

WithStmt node type for Jac Ast.

ExprAsItem#

flowchart LR
ExprAsItem -->|Expr| expr
ExprAsItem -.->|Expr| alias

ExprAsItem node type for Jac Ast.

RaiseStmt#

flowchart LR
RaiseStmt -.->|Expr| cause
RaiseStmt -.->|Expr| from_target

RaiseStmt node type for Jac Ast.

AssertStmt#

flowchart LR
AssertStmt -->|Expr| condition
AssertStmt -.->|Expr| error_msg

AssertStmt node type for Jac Ast.

CtrlStmt#

flowchart LR
CtrlStmt -->|Token| ctrl

CtrlStmt node type for Jac Ast.

DeleteStmt#

flowchart LR
DeleteStmt -->|Expr| target

DeleteStmt node type for Jac Ast.

ReportStmt#

flowchart LR
ReportStmt -->|Expr| expr

ReportStmt node type for Jac Ast.

ReturnStmt#

flowchart LR
ReturnStmt -.->|Expr| expr

ReturnStmt node type for Jac Ast.

IgnoreStmt#

flowchart LR
IgnoreStmt -->|Expr| target

IgnoreStmt node type for Jac Ast.

VisitStmt#

flowchart LR
VisitStmt -.->|Expr| vis_type
VisitStmt -->|Expr| target
VisitStmt -.->|ElseStmt| else_body

VisitStmt node type for Jac Ast.

RevisitStmt#

flowchart LR
RevisitStmt -.->|Expr| hops
RevisitStmt -.->|ElseStmt| else_body

ReVisitStmt node type for Jac Ast.

AwaitExpr#

flowchart LR
AwaitExpr -->|Expr| target

AwaitStmt node type for Jac Ast.

GlobalStmt#

flowchart LR
GlobalStmt -->|NameSpec| target

GlobalStmt node type for Jac Ast.

NonLocalStmt#

flowchart LR
NonLocalStmt -->|NameSpec| target

NonlocalStmt node type for Jac Ast.

Assignment#

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

Assignment node type for Jac Ast.

BinaryExpr#

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

ExprBinary node type for Jac Ast.

LambdaExpr#

flowchart LR
LambdaExpr -->|FuncSignature| signature
LambdaExpr -->|Expr| body

ExprLambda node type for Jac Ast.

UnaryExpr#

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

ExprUnary node type for Jac Ast.

IfElseExpr#

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

ExprIfElse node type for Jac Ast.

MultiString#

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

ExprMultiString node type for Jac Ast.

FString#

flowchart LR
FString -.->|String , ExprStmt| parts

FString node type for Jac Ast.

ExprList#

flowchart LR
ExprList -.->|Expr| values

ExprList node type for Jac Ast.

ListVal#

flowchart LR
ListVal -.->|Expr| values

ListVal node type for Jac Ast.

SetVal#

flowchart LR
SetVal -.->|Expr| values

SetVal node type for Jac Ast.

TupleVal#

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

TupleVal node type for Jac Ast.

DictVal#

flowchart LR
DictVal -->|KVPair| kv_pairs

ExprDict node type for Jac Ast.

KVPair#

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

ExprKVPair node type for Jac Ast.

KWPair#

flowchart LR
KWPair -->|NameSpec| key
KWPair -->|Expr| value

ExprKWPair node type for Jac Ast.

InnerCompr#

flowchart LR
InnerCompr -->|bool| is_async
InnerCompr -->|Expr| target
InnerCompr -->|Expr| collection
InnerCompr -.->|Expr| conditional

ListCompr node type for Jac Ast.

ListCompr#

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

ListCompr node type for Jac Ast.

GenCompr#

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

GenCompr node type for Jac Ast.

SetCompr#

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

SetCompr node type for Jac Ast.

DictCompr#

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

DictCompr node type for Jac Ast.

AtomTrailer#

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

AtomTrailer node type for Jac Ast.

AtomUnit#

flowchart LR
AtomUnit -->|Expr , YieldExpr| value
AtomUnit -->|bool| is_paren

AtomUnit node type for Jac Ast.

YieldExpr#

flowchart LR
YieldExpr -.->|Expr| expr
YieldExpr -->|bool| with_from

YieldStmt node type for Jac Ast.

FuncCall#

flowchart LR
FuncCall -->|Expr| target
FuncCall -.->|Expr , KWPair| params

FuncCall node type for Jac Ast.

IndexSlice#

flowchart LR
IndexSlice -.->|Expr| start
IndexSlice -.->|Expr| stop
IndexSlice -.->|Expr| step
IndexSlice -->|bool| is_range

IndexSlice node type for Jac Ast.

SpecialVarRef#

flowchart LR
SpecialVarRef -->|Token| var

HereRef node type for Jac Ast.

EdgeOpRef#

flowchart LR
EdgeOpRef -.->|Expr| filter_type
EdgeOpRef -.->|FilterCompr| filter_cond
EdgeOpRef -->|EdgeDir| edge_dir

EdgeOpRef node type for Jac Ast.

DisconnectOp#

flowchart LR
DisconnectOp -->|EdgeOpRef| edge_spec

DisconnectOpRef node type for Jac Ast.

ConnectOp#

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

ConnectOpRef node type for Jac Ast.

FilterCompr#

flowchart LR
FilterCompr -->|BinaryExpr| compares

FilterCtx node type for Jac Ast.

AssignCompr#

flowchart LR
AssignCompr -->|KWPair| assigns

AssignCtx node type for Jac Ast.

MatchStmt#

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

MatchStmt node type for Jac Ast.

MatchCase#

flowchart LR
MatchCase -->|MatchPattern| pattern
MatchCase -.->|Expr| guard
MatchCase -->|CodeBlockStmt| body

MatchCase node type for Jac Ast.

MatchOr#

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

MatchOr node type for Jac Ast.

MatchAs#

flowchart LR
MatchAs -->|NameSpec| name
MatchAs -.->|MatchPattern| pattern

MatchAs node type for Jac Ast.

MatchValue#

flowchart LR
MatchValue -->|Expr| value

MatchValue node type for Jac Ast.

MatchSingleton#

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

MatchSingleton node type for Jac Ast.

MatchSequence#

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

MatchSequence node type for Jac Ast.

MatchMapping#

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

MatchMapping node type for Jac Ast.

MatchKVPair#

flowchart LR
MatchKVPair -->|MatchPattern , NameSpec| key
MatchKVPair -->|MatchPattern| value

MatchKVPair node type for Jac Ast.

MatchStar#

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

MatchStar node type for Jac Ast.

MatchArch#

flowchart LR
MatchArch -->|NameSpec| name
MatchArch -.->|MatchPattern| arg_patterns
MatchArch -.->|MatchKVPair| kw_patterns

MatchClass node type for Jac Ast.

Token#

flowchart LR
Token -->|str| file_path
Token -->|str| name
Token -->|str| value
Token -->|int| col_start
Token -->|int| col_end_
Token -->|int| pos_start
Token -->|int| pos_end_

Token node type for Jac Ast.

BuiltinType#

flowchart LR
BuiltinType -->|str| file_path
BuiltinType -->|str| name
BuiltinType -->|str| value
BuiltinType -->|int| col_start
BuiltinType -->|int| col_end_
BuiltinType -->|int| pos_start
BuiltinType -->|int| pos_end_
BuiltinType -->|bool| is_enum_singleton
BuiltinType -->|bool| is_kwesc

Type node type for Jac Ast.

Float#

flowchart LR
Float -->|str| file_path
Float -->|str| name
Float -->|str| value
Float -->|int| col_start
Float -->|int| col_end_
Float -->|int| pos_start
Float -->|int| pos_end_

Float node type for Jac Ast.

Int#

flowchart LR
Int -->|str| file_path
Int -->|str| name
Int -->|str| value
Int -->|int| col_start
Int -->|int| col_end_
Int -->|int| pos_start
Int -->|int| pos_end_

Int node type for Jac Ast.

String#

flowchart LR
String -->|str| file_path
String -->|str| name
String -->|str| value
String -->|int| col_start
String -->|int| col_end_
String -->|int| pos_start
String -->|int| pos_end_

String node type for Jac Ast.

Bool#

flowchart LR
Bool -->|str| file_path
Bool -->|str| name
Bool -->|str| value
Bool -->|int| col_start
Bool -->|int| col_end_
Bool -->|int| pos_start
Bool -->|int| pos_end_

Bool node type for Jac Ast.

Null#

flowchart LR
Null -->|str| file_path
Null -->|str| name
Null -->|str| value
Null -->|int| col_start
Null -->|int| col_end_
Null -->|int| pos_start
Null -->|int| pos_end_

Semicolon node type for Jac Ast.

Semi#

flowchart LR
Semi -->|str| file_path
Semi -->|str| name
Semi -->|str| value
Semi -->|int| col_start
Semi -->|int| col_end_
Semi -->|int| pos_start
Semi -->|int| pos_end_

Semicolon node type for Jac Ast.

CommentToken#

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

CommentToken node type for Jac Ast.