import string
import sys

##################### Nodes ##########################################

# children: Node[]
# name:     string
# lex:      string
class Node():
    def __init__(self, name, lex, children):
        self.name     = name
        self.lex      = lex
        self.children = children
    def __str__(self):
        return printNodePretty(self)
    def weed(self):
        return ''

##################### Helpers ##########################################

# node:   Node
# prefix: string
# last:   boolean
def printNodePretty(node, prefix='', last=True):
    res = prefix
    res += '`- ' if last else '|- '
    res += node.name + ' ' + node.lex + '\n'
    prefix += '   ' if last else '|  '
    num = len(node.children)
    for i, child in enumerate(node.children):
        last = i == (num - 1)
        res += printNodePretty(child, prefix, last)
    return res