code: func parseAction(name, text string) (*Parser, error) {
  	p, err := Parse(name, fmt.Sprintf("%s%s%s", leftDelim, text, rightDelim))
  	// when error happens, p will be nil, so we need to return here
  	if err != nil {
  		return p, err
  	}
  	p.Root = p.Root.Nodes[0].(*ListNode)
  	return p, nil
  }
docs: // parseAction parsed the expression inside delimiter