codetree package - github.com/aerogo/codetree - Go Packages

v1.2.9 Published: Aug 25, 2019 License: MIT

Imports: 3

Imported by: 2

README

codetree

Godoc Report Tests Coverage Sponsor

Parses indented code (Python, Pug, Stylus, Pixy, codetree, etc.) and returns a tree structure.

Installation

go get github.com/aerogo/codetree

Usage

tree, err := codetree.New(reader)
defer tree.Close()

Input

parent1
	child1
	child2
	child3
		child3.1
		child3.2
	child4

parent2
	child1

Output

See CodeTree structure.

The root node always starts with Indent being -1.

Style

Please take a look at the style guidelines if you'd like to make a pull request.

Cedric Fung Scott Rayapoullé Eduard Urbach
Cedric Fung Scott Rayapoullé Eduard Urbach

Want to see your own name here?

Documentation

This section is empty.

This section is empty.

This section is empty.

type CodeTree struct {
	Line     string
	Children []*CodeTree
	Parent   *CodeTree
	Indent   int
}

CodeTree represents a tree structure for whitespace-significant, indented code. Each line of code is parsed and the indentation level of the line is stored in Indent. The root node having Indent set to -1 contains child nodes that can contain child nodes themselves, recursively. Each line is saved without whitespace characters at the start of the string.

New returns a tree structure if you feed it with indentantion based source code.

func (tree *CodeTree) Close()

Close sends the tree and all of its children back to the memory pool. The resources are therefore freed up and the tree object should not be used after the final Close() call anymore.