Trim lines
Keep track of current list in local variable
Point past the end of the lists
Grow parse tree to arbitrary depth