code: func ReportError(fm string, vals ...interface{}) {
  	var suffix string
  	if cur := ctxStack.Current(); cur != nil {
  		if ctx := cur.Context(); ctx != "" {
  			suffix = fmt.Sprintf(" in %s", ctx)
  		}
  	} else {
  		suffix = " (top level)"
  	}
  	err := fmt.Errorf(fm+suffix, vals...)
  	file, line := computeErrorLocation()
  	Errors = append(Errors, &Error{
  		GoError: err,
  		File:    file,
  		Line:    line,
  	})
  }
docs: // ReportError records a DSL error for reporting post DSL execution.