comparison icf/icf.go @ 4:dacc92aae6d5

expand vars in vars
author Atarwn Gard <a@qwa.su>
date Mon, 09 Mar 2026 03:07:18 +0500
parents d19133be91ba
children 54ab94198677
comparison
equal deleted inserted replaced
3:eb705d4cdcd7 4:dacc92aae6d5
45 return nil, err 45 return nil, err
46 } 46 }
47 47
48 // --- Pass 1: collect variables --- 48 // --- Pass 1: collect variables ---
49 vars := make(map[string]string) 49 vars := make(map[string]string)
50 subst := makeSubst(vars)
51
50 for _, line := range lines { 52 for _, line := range lines {
51 if i := strings.Index(line, "="); i > 0 && !strings.HasPrefix(line, "|>") { 53 if i := strings.Index(line, "="); i > 0 && !strings.HasPrefix(line, "|>") {
52 key := line[:i] 54 key := line[:i]
53 if isVarName(key) { 55 if isVarName(key) {
54 vars[key] = strings.TrimSpace(line[i+1:]) 56 vars[key] = subst(strings.TrimSpace(line[i+1:]), nil)
55 } 57 }
56 } 58 }
57 } 59 }
58
59 subst := makeSubst(vars)
60 60
61 // --- Pass 2: parse blocks (raw, no capture substitution yet) --- 61 // --- Pass 2: parse blocks (raw, no capture substitution yet) ---
62 var raws []rawBlock 62 var raws []rawBlock
63 var cur *rawBlock 63 var cur *rawBlock
64 64