package main import ( "c65gm/internal/preproc" "fmt" ) // put the DefineList type in another file (same package) or import it; // here I assume definelist.go is in its own package "definelist". // If it's in the same package main, just call New() directly. func main() { defs := preproc.NewDefineList() // <-- important defs.Add("ARRAY_MIN", "0") defs.Add("ARRAY_MAX", "100") defs.Add("ARRAY_MAX_PAX", "1000") defs.Add("VERSION", "1.0") defs.Add("π", "3.14159") src := `for i := ARRAY_MIN to ARRAY_MAX_PAX do writeln(VERSION); writeln(ARRAY_MAX); const PI = π;` fmt.Println("Original:\n" + src) fmt.Println("\nReplaced:\n" + defs.ReplaceDefines(src)) defs.Delete("ARRAY_MAX_PAX") fmt.Println("\nReplaced (after .Delete):\n" + defs.ReplaceDefines(src)) }