Jamtree

A general purpose compiler heart.

This is a component of the compiler of the jamplate programming language.

1 – Tree

A point in space with connections to other trees.

Each tree can have four trees connected to it:
top, left, right and bottom.

A tree connections can be visualized in the following graph:

    A
    |
    B - C - D - E
        |       |
        F - G   H - I

1.1 – The connection between a tree and its children

As in the graph above, a tree’s parent is not always on top of it.
In fact, only the first child can be connected to its parent.
This also means, a tree can only be connected to its first child.

1.2 – How to reach the parent of a tree?

The way to reach the parent of a tree is to reach the leftmost sibling
of it and then reach the parent.

1.3 – How many connections a tree can have at a time?

As in section 1.1, a tree can have at most 3 connections at a time.
Because it must not have a tree left to it and another on top of it.

1.4 – How are the connections get managed?

The connections are managed automatically and the
user need to only introduce them to each other.

1.5 – How are the connections get corrupted?

The trees must not be corrupted. If so, this is a bug in this library.
The user must not be concerned about the tree’s structure and management.

1.6 – Is this library thread-safe?

Unfortunately, no. But, it might be in the future.

2 – Structure

An imaginary component describing trees connected together.

When saying the structure of a tree, it refers to the tree itself
and the trees connected to it.

GitHub

View Github