We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
2 parents 9d1e26d + b114b8a commit c36fc32Copy full SHA for c36fc32
1 file changed
rd/rd_parser.go
@@ -178,10 +178,21 @@ func String(rule string) ParserFunc {
178
}
179
180
181
+var regexMap = make(map[string]*regexp.Regexp)
182
+
183
+func getRegex(rule string) *regexp.Regexp {
184
+ if regexMap[rule] == nil {
185
+ r, _ := regexp.Compile(rule)
186
+ regexMap[rule] = r
187
+ }
188
189
+ return regexMap[rule]
190
+}
191
192
func RegexChar(rule string) ParserFunc {
193
return func(state *State) (Ast, bool) {
194
text := state.Text[state.Position:]
- r, _ := regexp.Compile(rule)
195
+ r := getRegex(rule)
196
loc := r.FindStringIndex(text)
197
198
if len(loc) > 0 && loc[0] == 0 {
0 commit comments