Skip to content

Commit

Permalink
✨ feat: Add AST SVG generator
Browse files Browse the repository at this point in the history
  • Loading branch information
caoccao committed May 13, 2024
1 parent 21a06c6 commit 95d51ae
Show file tree
Hide file tree
Showing 4 changed files with 3,004 additions and 0 deletions.
244 changes: 244 additions & 0 deletions docs/features/ast.dot
Original file line number Diff line number Diff line change
@@ -0,0 +1,244 @@
digraph {
rankdir="LR"
Pat -> ArrayPat
Pat -> AssignPat
Pat -> Expr
Pat -> BindingIdent
Pat -> Invalid
Pat -> ObjectPat
Pat -> RestPat
Expr -> ArrayLit
Expr -> ArrowExpr
Expr -> AssignExpr
Expr -> AwaitExpr
Expr -> BinExpr
Expr -> CallExpr
Expr -> ClassExpr
Expr -> CondExpr
Expr -> FnExpr
Expr -> Ident
Expr -> Invalid
Expr -> JSXElement
Expr -> JSXEmptyExpr
Expr -> JSXFragment
Expr -> JSXMemberExpr
Expr -> JSXNamespacedName
Expr -> Lit
Expr -> MemberExpr
Expr -> MetaPropExpr
Expr -> NewExpr
Expr -> ObjectLit
Expr -> OptChainExpr
Expr -> ParenExpr
Expr -> PrivateName
Expr -> SeqExpr
Expr -> SuperPropExpr
Expr -> TaggedTpl
Expr -> ThisExpr
Expr -> Tpl
Expr -> TsAsExpr
Expr -> TsConstAssertion
Expr -> TsInstantiation
Expr -> TsNonNullExpr
Expr -> TsSatisfiesExpr
Expr -> TsTypeAssertion
Expr -> UnaryExpr
Expr -> UpdateExpr
Expr -> YieldExpr
Lit -> BigInt
Lit -> Bool
Lit -> JSXText
Lit -> Null
Lit -> Number
Lit -> Regex
Lit -> Str
JSXObject -> Ident
JSXObject -> JSXMemberExpr
ImportSpecifier -> ImportDefaultSpecifier
ImportSpecifier -> ImportNamedSpecifier
ImportSpecifier -> ImportStarAsSpecifier
TsEnumMemberId -> Ident
TsEnumMemberId -> Str
JSXAttrValue -> JSXElement
JSXAttrValue -> JSXExprContainer
JSXAttrValue -> JSXFragment
JSXAttrValue -> Lit
Program -> Module
Program -> Script
Prop -> AssignProp
Prop -> GetterProp
Prop -> KeyValueProp
Prop -> MethodProp
Prop -> SetterProp
Prop -> Ident
TsType -> TsArrayType
TsType -> TsConditionalType
TsType -> TsFnOrConstructorType
TsType -> TsImportType
TsType -> TsIndexedAccessType
TsType -> TsInferType
TsType -> TsKeywordType
TsType -> TsLitType
TsType -> TsMappedType
TsType -> TsOptionalType
TsType -> TsParenthesizedType
TsType -> TsRestType
TsType -> TsThisType
TsType -> TsTupleType
TsType -> TsTypeLit
TsType -> TsTypeOperator
TsType -> TsTypePredicate
TsType -> TsTypeQuery
TsType -> TsTypeRef
TsType -> TsUnionOrIntersectionType
TsFnOrConstructorType -> TsConstructorType
TsFnOrConstructorType -> TsFnType
TsUnionOrIntersectionType -> TsIntersectionType
TsUnionOrIntersectionType -> TsUnionType
TsTypeElement -> TsCallSignatureDecl
TsTypeElement -> TsConstructSignatureDecl
TsTypeElement -> TsGetterSignature
TsTypeElement -> TsIndexSignature
TsTypeElement -> TsMethodSignature
TsTypeElement -> TsPropertySignature
TsTypeElement -> TsSetterSignature
TsLit -> BigInt
TsLit -> Bool
TsLit -> Number
TsLit -> Str
TsLit -> TsTplLitType
TsThisTypeOrIdent -> Ident
TsThisTypeOrIdent -> TsThisType
VarDeclOrExpr -> Expr
VarDeclOrExpr -> VarDecl
TsTypeQueryExpr -> TsImportType
TsTypeQueryExpr -> TsEntityName
TsEntityName -> Ident
TsEntityName -> TsQualifiedName
PropName -> BigInt
PropName -> ComputedPropName
PropName -> Ident
PropName -> Number
PropName -> Str
JSXElementName -> Ident
JSXElementName -> JSXMemberExpr
JSXElementName -> JSXNamespacedName
ModuleDecl -> ExportAll
ModuleDecl -> ExportDecl
ModuleDecl -> ExportDefaultDecl
ModuleDecl -> ExportDefaultExpr
ModuleDecl -> NamedExport
ModuleDecl -> ImportDecl
ModuleDecl -> TsExportAssignment
ModuleDecl -> TsImportEqualsDecl
ModuleDecl -> TsNamespaceExportDecl
DefaultDecl -> ClassExpr
DefaultDecl -> FnExpr
DefaultDecl -> TsInterfaceDecl
Key -> PrivateName
Key -> PropName
Callee -> Expr
Callee -> Import
Callee -> Super
JSXExpr -> Expr
JSXExpr -> JSXEmptyExpr
JSXElementChild -> JSXElement
JSXElementChild -> JSXExprContainer
JSXElementChild -> JSXFragment
JSXElementChild -> JSXSpreadChild
JSXElementChild -> JSXText
TsParamPropParam -> AssignPat
TsParamPropParam -> BindingIdent
SuperProp -> ComputedPropName
SuperProp -> Ident
ExportSpecifier -> ExportDefaultSpecifier
ExportSpecifier -> ExportNamedSpecifier
ExportSpecifier -> ExportNamespaceSpecifier
Stmt -> BlockStmt
Stmt -> BreakStmt
Stmt -> ContinueStmt
Stmt -> DebuggerStmt
Stmt -> Decl
Stmt -> DoWhileStmt
Stmt -> EmptyStmt
Stmt -> ExprStmt
Stmt -> ForStmt
Stmt -> ForInStmt
Stmt -> ForOfStmt
Stmt -> IfStmt
Stmt -> LabeledStmt
Stmt -> ReturnStmt
Stmt -> SwitchStmt
Stmt -> ThrowStmt
Stmt -> TryStmt
Stmt -> WhileStmt
Stmt -> WithStmt
Decl -> ClassDecl
Decl -> FnDecl
Decl -> TsEnumDecl
Decl -> TsInterfaceDecl
Decl -> TsModuleDecl
Decl -> TsTypeAliasDecl
Decl -> UsingDecl
Decl -> VarDecl
AssignTarget -> SimpleAssignTarget
AssignTarget -> AssignTargetPat
SimpleAssignTarget -> BindingIdent
SimpleAssignTarget -> Invalid
SimpleAssignTarget -> MemberExpr
SimpleAssignTarget -> OptChainExpr
SimpleAssignTarget -> ParenExpr
SimpleAssignTarget -> SuperPropExpr
SimpleAssignTarget -> TsAsExpr
SimpleAssignTarget -> TsInstantiation
SimpleAssignTarget -> TsNonNullExpr
SimpleAssignTarget -> TsSatisfiesExpr
SimpleAssignTarget -> TsTypeAssertion
AssignTargetPat -> ArrayPat
AssignTargetPat -> Invalid
AssignTargetPat -> ObjectPat
ModuleItem -> ModuleDecl
ModuleItem -> Stmt
BlockStmtOrExpr -> BlockStmt
BlockStmtOrExpr -> Expr
ObjectPatProp -> AssignPatProp
ObjectPatProp -> KeyValuePatProp
ObjectPatProp -> RestPat
TsFnParam -> ArrayPat
TsFnParam -> BindingIdent
TsFnParam -> ObjectPat
TsFnParam -> RestPat
TsModuleRef -> TsEntityName
TsModuleRef -> TsExternalModuleRef
JSXAttrName -> Ident
JSXAttrName -> JSXNamespacedName
TsModuleName -> Ident
TsModuleName -> Str
MemberProp -> ComputedPropName
MemberProp -> Ident
MemberProp -> PrivateName
TsNamespaceBody -> TsModuleBlock
TsNamespaceBody -> TsNamespaceDecl
ClassMember -> AutoAccessor
ClassMember -> ClassProp
ClassMember -> Constructor
ClassMember -> EmptyStmt
ClassMember -> ClassMethod
ClassMember -> PrivateMethod
ClassMember -> PrivateProp
ClassMember -> StaticBlock
ClassMember -> TsIndexSignature
JSXAttrOrSpread -> JSXAttr
JSXAttrOrSpread -> SpreadElement
ForHead -> Pat
ForHead -> UsingDecl
ForHead -> VarDecl
ModuleExportName -> Ident
ModuleExportName -> Str
PropOrSpread -> Prop
PropOrSpread -> SpreadElement
ParamOrTsParamProp -> Param
ParamOrTsParamProp -> TsParamProp
OptChainBase -> OptCall
OptChainBase -> MemberExpr
}
3 changes: 3 additions & 0 deletions docs/features/ast.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# AST

Swc4j implements all SWC AST nodes.
Loading

0 comments on commit 95d51ae

Please sign in to comment.