Represents a tree that can be executed

@param {Array} root The root-level nodes
@param {Object} labels An object of label: line mappings
@param {BlockManager} manager The block manager
function AbstractSyntaxTree(root, labels, manager) {
    this.root = root;
    this.labels = labels;
    this.manager = manager;

    manager.parse(this);
}