extractor

package
v0.0.0-...-fb7a9af Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 13, 2025 License: MIT Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AddEdge

func AddEdge(edges *[]GraphEdge, fromID, toID, label string, props map[string]string)

func BuildSimplifiedASTs

func BuildSimplifiedASTs(
	fset *token.FileSet,
	files map[string]*ast.File,
	typesInfo *types.Info,
) map[string]*SimplifiedASTNode

func CollectSymbolTable

func CollectSymbolTable(ast *SimplifiedASTNode) map[string]*ModifiedDefinitionInfo

func KindToLabel

func KindToLabel(kind string) []string

func LoadSimplifiedASTs

func LoadSimplifiedASTs(dir string) (map[string]*SimplifiedASTNode, error)

func LoadTypesInfo

func LoadTypesInfo(
	fset *token.FileSet,
	files map[string]*ast.File,
	absPath string,
) (*types.Info, *types.Package, error)

func OutputSimplifiedASTs

func OutputSimplifiedASTs(fset *token.FileSet, files map[string]*ast.File, projectRoot string, outDir string, typesInfo *types.Info) error

func ParsePackage

func ParsePackage(dir string) (*token.FileSet, map[string]*ast.File, error)

Parses a whole package (only the .go files) into a FileSet dir is relative to this (gophers) package

func SaveSimplifiedAST

func SaveSimplifiedAST(ast *SimplifiedASTNode, projectRoot, outputDir string) error

func WriteSymbolTableToFile

func WriteSymbolTableToFile(symbolTable map[string]*ModifiedDefinitionInfo, outputPath string) error

Types

type ASTNodePosition

type ASTNodePosition struct {
	URI       string `json:"uri"`
	Line      int    `json:"line"`
	Character int    `json:"character"`
}

type EdgeData

type EdgeData struct {
	ID         string            `json:"id"`
	Label      string            `json:"label"`
	Source     string            `json:"source"`
	Target     string            `json:"target"`
	Properties map[string]string `json:"properties"`
}

type Elements

type Elements struct {
	Nodes []GraphNode `json:"nodes"`
	Edges []GraphEdge `json:"edges"`
}

type Graph

type Graph struct {
	Elements Elements `json:"elements"`
}

type GraphEdge

type GraphEdge struct {
	Data EdgeData `json:"data"`
}

func GenerateAllEdges

func GenerateAllEdges(
	simplifiedASTs map[string]*SimplifiedASTNode,
	symbols map[string]*ModifiedDefinitionInfo,
	sourceRoot string,
) []GraphEdge

func GenerateFileDeclaresEdges

func GenerateFileDeclaresEdges(symbols map[string]*ModifiedDefinitionInfo) []GraphEdge

func GenerateFileDeclaresScopeEdges

func GenerateFileDeclaresScopeEdges(simplifiedASTs map[string]*SimplifiedASTNode) []GraphEdge

func GenerateFolderContainsEdges

func GenerateFolderContainsEdges(sourceRoot string) ([]GraphEdge, error)

func GenerateInvokesEdges

func GenerateInvokesEdges(
	simplifiedASTs map[string]*SimplifiedASTNode,
	symbols map[string]*ModifiedDefinitionInfo,
) []GraphEdge

func GenerateOperationUsesVariableEdges

func GenerateOperationUsesVariableEdges(
	simplifiedASTs map[string]*SimplifiedASTNode,
	symbols map[string]*ModifiedDefinitionInfo,
) []GraphEdge

func GenerateParameterizesEdges

func GenerateParameterizesEdges(
	simplifiedASTs map[string]*SimplifiedASTNode,
	symbols map[string]*ModifiedDefinitionInfo,
) []GraphEdge

func GenerateProjectIncludesEdges

func GenerateProjectIncludesEdges(sourceRoot string) ([]GraphEdge, error)

func GenerateRequiresEdges

func GenerateRequiresEdges(
	simplifiedASTs map[string]*SimplifiedASTNode,
) []GraphEdge

func GenerateReturnsEdges

func GenerateReturnsEdges(
	simplifiedASTs map[string]*SimplifiedASTNode,
	symbols map[string]*ModifiedDefinitionInfo,
) []GraphEdge

func GenerateScopeEnclosesTypeEdges

func GenerateScopeEnclosesTypeEdges(
	symbols map[string]*ModifiedDefinitionInfo,
) []GraphEdge

func GenerateTypeEncapsulatesOperationEdges

func GenerateTypeEncapsulatesOperationEdges(symbols map[string]*ModifiedDefinitionInfo) []GraphEdge

func GenerateTypeEncapsulatesVariableEdges

func GenerateTypeEncapsulatesVariableEdges(
	simplifiedASTs map[string]*SimplifiedASTNode,
	symbols map[string]*ModifiedDefinitionInfo,
) []GraphEdge

func GenerateTypedEdges

func GenerateTypedEdges(
	symbols map[string]*ModifiedDefinitionInfo,
) []GraphEdge

type GraphNode

type GraphNode struct {
	Data NodeData `json:"data"`
}

func GenerateGraphNodes

func GenerateGraphNodes(
	sourceRoot string,
	files map[string]*ast.File,
	symbols map[string]*ModifiedDefinitionInfo,
	simplifiedASTs map[string]*SimplifiedASTNode,
) ([]GraphNode, error)

type ModifiedDefinitionInfo

type ModifiedDefinitionInfo struct {
	Name         string
	URI          string
	Line         int
	Character    int
	Kind         string
	Type         string
	ReceiverType string
	PackageName  string
}

type NodeData

type NodeData struct {
	ID         string            `json:"id"`
	Labels     []string          `json:"labels"`
	Properties map[string]string `json:"properties"`
}

type SimplifiedASTNode

type SimplifiedASTNode struct {
	Type       string                  `json:"type"`
	Name       string                  `json:"name,omitempty"`
	Children   []*SimplifiedASTNode    `json:"children,omitempty"`
	Position   *ASTNodePosition        `json:"position,omitempty"`
	DeclaredAt *ModifiedDefinitionInfo `json:"declaredAt,omitempty"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL