Exemplo n.º 1
0
Arquivo: eval.go Projeto: jbert/gol
func (e *Evaluator) evalProgn(np *gol.NodeProgn) (gol.Node, error) {
	// Value if no children
	var lastVal gol.Node
	lastVal = gol.NewNodeList()

	body := np.Rest()
	err := body.Foreach(func(child gol.Node) error {
		v, err := e.Eval(child)
		if err != nil {
			return err
		}
		lastVal = v
		return nil
	})
	if err != nil {
		return nil, err
	}

	// Return last
	return lastVal, nil
}