code: func parseSubCommand(rest string, d *Directive) (*Node, map[string]bool, error) {
  	if rest == "" {
  		return nil, nil, nil
  	}
  
  	child, err := newNodeFromLine(rest, d)
  	if err != nil {
  		return nil, nil, err
  	}
  
  	return &Node{Children: []*Node{child}}, nil, nil
  }
docs: // used for onbuild. Could potentially be used for anything that represents a
  // statement with sub-statements.
  //
  // ONBUILD RUN foo bar -> (onbuild (run foo bar))
  //