package parser

import (
	"git.jfdev.de/JonasFranzDEV/hal/hal"
)

func GetModulesFromConfig(config *hal.ClusterConfig, debug bool) (modules map[string]*hal.Module, err error) {
	// all modules with their name as key
	modules = make(map[string]*hal.Module)

	for _, node := range config.Nodes {
		program, err := ParseFile(node.Program)
		if err != nil {
			return nil, err
		}
		// By default, all IO is the standard IO, we'll override it with channels where needed.
		modules[node.Name], err = hal.NewHALModule(program, 256, 4, debug)
		if err != nil {
			return nil, err
		}
	}
	return
}