'Return a "code" representation of this line.
The code representation shows how the line would be printed out as code.
TODO(eliben): for now this is rudimentary for debugging - once we add
formatting capabilities, this method will have other uses (not all tokens
have spaces around them, for example).
Arguments:
indent_per_depth: how much spaces to indend per depth level.
Returns:
A string representing the line as code.'

def AsCode(self, indent_per_depth=2):

    indent = (('    ' * indent_per_depth) * self.depth)
    tokens_str = '    '.join((tok.value for tok in self._tokens))
    return (indent + tokens_str)
