Help us shape the future of Go! Take the 2026 Go Developer Survey

parser

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Dec 19, 2025 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ASTParser

type ASTParser struct{}

ASTParser implements Parser using Go's AST packages

func (*ASTParser) ParseDirectory

func (p *ASTParser) ParseDirectory(rootPath string, excludePatterns []string) ([]*FileMetrics, []error)

ParseDirectory recursively finds and parses all Go files in a directory

func (*ASTParser) ParseFile

func (p *ASTParser) ParseFile(path string) (*FileMetrics, error)

ParseFile parses a single Go file and extracts metrics

type FileMetrics

type FileMetrics struct {
	FilePath     string             // Absolute or relative path to the file
	PackageName  string             // Package declaration
	TotalLines   int                // Total lines in the file
	CodeLines    int                // Lines with actual code (excluding blank and comments)
	CommentLines int                // Lines with comments
	BlankLines   int                // Blank lines
	Functions    []*FunctionMetrics // All functions/methods in the file
	Imports      []string           // Import paths
}

FileMetrics contains metrics extracted from a single Go file

func (*FileMetrics) CodeRatio

func (fm *FileMetrics) CodeRatio() float64

CodeRatio calculates the ratio of code lines to total lines

func (*FileMetrics) CommentRatio

func (fm *FileMetrics) CommentRatio() float64

CommentRatio calculates the ratio of comment lines to total lines

type FunctionMetrics

type FunctionMetrics struct {
	Name         string // Function name
	ReceiverType string // Empty if not a method, otherwise the receiver type
	StartLine    int    // Line number where function starts
	EndLine      int    // Line number where function ends
	Lines        int    // Total lines in function body
	Parameters   int    // Number of parameters
	ReturnValues int    // Number of return values
	Complexity   int    // Simple cyclomatic complexity (Phase 1: basic count)
}

FunctionMetrics contains metrics for a single function or method

func (*FunctionMetrics) FullName

func (fm *FunctionMetrics) FullName() string

FullName returns the full function name including receiver for methods

func (*FunctionMetrics) IsMethod

func (fm *FunctionMetrics) IsMethod() bool

IsMethod returns true if this is a method (has a receiver)

type Parser

type Parser interface {
	// ParseFile parses a single Go file and returns its metrics
	ParseFile(path string) (*FileMetrics, error)

	// ParseDirectory recursively parses all Go files in a directory
	// Returns metrics for all successfully parsed files and any errors encountered
	ParseDirectory(path string, excludePatterns []string) ([]*FileMetrics, []error)
}

Parser defines the interface for parsing Go source files

func NewParser

func NewParser() Parser

NewParser creates a new Parser instance

Jump to

Keyboard shortcuts

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