def add_children(parent)
      while tokens = @tokenizer.read_line_tokens()
        if tokens.first.type == :END_BLOCK
          return
					
        elsif tokens.last.type == :START_BLOCK
          # found a child with a block
          tag = construct_tag(tokens[0...-1]);
          add_children(tag)
          parent.add_child(tag)
					
        else
          parent.add_child(construct_tag(tokens))
        end
      end
			
      parse_error("No close block (}).", @tokenizer.line_no, UNKNOWN_POSITION)
    end
def add_children(parent)
      while tokens = @tokenizer.read_line_tokens()
        if tokens.first.type == :END_BLOCK
          return
					
        elsif tokens.last.type == :START_BLOCK
          # found a child with a block
          tag = construct_tag(tokens[0...-1]);
          add_children(tag)
          parent.add_child(tag)
					
        else
          parent.add_child(construct_tag(tokens))
        end
      end
			
      parse_error("No close block (}).", @tokenizer.line_no, UNKNOWN_POSITION)
    end
Parses the children tags of +parent+ until an end of block is found.