diff --git a/parser/corpus_parser.go b/parser/corpus_parser.go
index 9debf3a..187a618 100644
--- a/parser/corpus_parser.go
+++ b/parser/corpus_parser.go
@@ -95,13 +95,13 @@
 
 // ParseMapping parses a corpus mapping rule of the form "pattern <> replacement".
 func (p *CorpusParser) ParseMapping(input string) (*CorpusMappingResult, error) {
-	sepIdx := strings.Index(input, "<>")
-	if sepIdx == -1 {
+	before, after, ok := strings.Cut(input, "<>")
+	if !ok {
 		return nil, fmt.Errorf("invalid corpus mapping rule: missing <> separator in %q", input)
 	}
 
-	leftStr := strings.TrimSpace(input[:sepIdx])
-	rightStr := strings.TrimSpace(input[sepIdx+2:])
+	leftStr := strings.TrimSpace(before)
+	rightStr := strings.TrimSpace(after)
 
 	if leftStr == "" {
 		return nil, fmt.Errorf("invalid corpus mapping rule: empty left side")
@@ -183,16 +183,16 @@
 func (p *CorpusParser) parseField(input string) (*CorpusField, error) {
 	input = strings.TrimSpace(input)
 
-	eqIdx := strings.Index(input, "=")
-	if eqIdx == -1 {
+	before, after, ok := strings.Cut(input, "=")
+	if !ok {
 		if !p.AllowBareValues {
 			return nil, fmt.Errorf("invalid field expression: missing '=' in %q", input)
 		}
 		return p.parseBareValue(input)
 	}
 
-	key := strings.TrimSpace(input[:eqIdx])
-	rest := strings.TrimSpace(input[eqIdx+1:])
+	key := strings.TrimSpace(before)
+	rest := strings.TrimSpace(after)
 
 	if key == "" {
 		return nil, fmt.Errorf("invalid field expression: empty key")
diff --git a/parser/grammar_parser.go b/parser/grammar_parser.go
index 7c949f8..a224181 100644
--- a/parser/grammar_parser.go
+++ b/parser/grammar_parser.go
@@ -156,7 +156,7 @@
 			// Check if this parenthesis is inside brackets (part of an identifier)
 			insideBrackets := false
 			bracketDepth := 0
-			for j := 0; j < i; j++ {
+			for j := range i {
 				if runes[j] == '[' {
 					bracketDepth++
 				} else if runes[j] == ']' {
