diff --git a/lib/manager/bazel/extract.ts b/lib/manager/bazel/extract.ts
index 5c42fade649e2267b59d2ba32ea66e195b5af7af..9a20d2699d916c9b4e025e1e516534b10af0b1fa 100644
--- a/lib/manager/bazel/extract.ts
+++ b/lib/manager/bazel/extract.ts
@@ -53,7 +53,7 @@ function parseUrl(urlString: string): UrlParsedResult | null {
   return null;
 }
 
-const dummyLexer = {
+const lexer = moo.states({
   main: {
     lineComment: { match: /#.*?$/ },
     leftParen: { match: '(' },
@@ -103,11 +103,11 @@ const dummyLexer = {
     stringFinish: { match: "'", pop: 1 },
     char: { match: /[^]/, lineBreaks: true },
   },
-};
+});
 
 function parseContent(content: string): string[] {
-  const lexer = moo.states(dummyLexer);
   lexer.reset(content);
+
   let balance = 0;
 
   let def: null | string = null;
diff --git a/lib/manager/cake/index.ts b/lib/manager/cake/index.ts
index 74415c75d3344923d95a45b494326af7a72bc827..50d04007f97a92c7f889b0e645fa6bb0f3b96d34 100644
--- a/lib/manager/cake/index.ts
+++ b/lib/manager/cake/index.ts
@@ -10,7 +10,7 @@ export const defaultConfig = {
   fileMatch: ['\\.cake$'],
 };
 
-const lexerStates = {
+const lexer = moo.states({
   main: {
     lineComment: { match: /\/\/.*?$/ },
     multiLineComment: { match: /\/\*[^]*?\*\//, lineBreaks: true },
@@ -23,7 +23,7 @@ const lexerStates = {
     },
     unknown: { match: /[^]/, lineBreaks: true },
   },
-};
+});
 
 function parseDependencyLine(line: string): PackageDependency | null {
   try {
@@ -54,7 +54,6 @@ function parseDependencyLine(line: string): PackageDependency | null {
 
 export function extractPackageFile(content: string): PackageFile {
   const deps = [];
-  const lexer = moo.states(lexerStates);
   lexer.reset(content);
   let token = lexer.next();
   while (token) {
diff --git a/lib/manager/gradle-lite/tokenizer.ts b/lib/manager/gradle-lite/tokenizer.ts
index 904cf29b161111c135981b8df31533d931401409..b37722fae2b87348b79b4b00dc94840027d8b4d8 100644
--- a/lib/manager/gradle-lite/tokenizer.ts
+++ b/lib/manager/gradle-lite/tokenizer.ts
@@ -19,7 +19,7 @@ const escapedChars = {
   },
 };
 
-export const rawLexer = {
+const lexer = moo.states({
   // Top-level Groovy lexemes
   main: {
     [TokenType.LineComment]: { match: /\/\/.*?$/ },
@@ -104,7 +104,7 @@ export const rawLexer = {
     [TokenType.RightBrace]: { match: '}', pop: 1 },
     [TokenType.UnknownLexeme]: { match: /[^]/, lineBreaks: true },
   },
-};
+});
 
 /*
   Turn UnknownLexeme chars to UnknownFragment strings
@@ -213,7 +213,6 @@ function filterTokens({ type }: Token): boolean {
 }
 
 export function extractRawTokens(input: string): Token[] {
-  const lexer = moo.states(rawLexer);
   lexer.reset(input);
   return Array.from(lexer).map(
     ({ type, offset, value }) => ({ type, offset, value } as Token)