From e4597ae8f7f33427e715d7d9a393aced5b989734 Mon Sep 17 00:00:00 2001 From: Alec Thomas Date: Sat, 16 May 2020 16:04:08 +1000 Subject: [PATCH] Add a Rules.Merge() helper function. Might be useful for #363. --- regexp.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/regexp.go b/regexp.go index d13d58d69..96bcce618 100644 --- a/regexp.go +++ b/regexp.go @@ -170,6 +170,15 @@ func (r Rules) Clone() Rules { return out } +// Merge creates a clone of "r" then merges "rules" into the clone. +func (r Rules) Merge(rules Rules) Rules { + out := r.Clone() + for k, v := range rules.Clone() { + out[k] = v + } + return out +} + // MustNewLexer creates a new Lexer or panics. func MustNewLexer(config *Config, rules Rules) *RegexLexer { lexer, err := NewLexer(config, rules)