diff --git a/lib/spack/spack/spec.py b/lib/spack/spack/spec.py
index 7c09af4c210169b1c9de88c029783a6781d76056..16b61236a96fed76398866984a744cd1eabaa01f 100644
--- a/lib/spack/spack/spec.py
+++ b/lib/spack/spack/spec.py
@@ -2015,10 +2015,13 @@ def __init__(self):
             (r'\s+', lambda scanner, val: None)])
 
 
+# Lexer is always the same for every parser.
+_lexer = SpecLexer()
+
 class SpecParser(spack.parse.Parser):
 
     def __init__(self):
-        super(SpecParser, self).__init__(SpecLexer())
+        super(SpecParser, self).__init__(_lexer)
         self.previous = None
 
     def do_parse(self):