diff --git a/jedi/api/__init__.py b/jedi/api/__init__.py index 92909606..ebde34d2 100644 --- a/jedi/api/__init__.py +++ b/jedi/api/__init__.py @@ -104,7 +104,7 @@ class Script(object): cache.clear_time_caches() debug.reset_time() - self._grammar = load_grammar('grammar3.4') + self._grammar = load_grammar('grammar%s.%s' % sys.version_info[:2]) self._user_context = UserContext(self.source, self._pos) self._parser = UserContextParser(self._grammar, self.source, path, self._pos, self._user_context) diff --git a/jedi/parser/__init__.py b/jedi/parser/__init__.py index 3a03b308..11a5839e 100644 --- a/jedi/parser/__init__.py +++ b/jedi/parser/__init__.py @@ -33,6 +33,13 @@ _loaded_grammars = {} def load_grammar(file='grammar3.4'): + # For now we only support two different Python syntax versions: The latest + # Python 3 and Python 2. This may change. + if file.startswith('grammar3'): + file = 'grammar3.4' + else: + file = 'grammar2.7' + global _loaded_grammars path = os.path.join(os.path.dirname(__file__), file) + '.txt' try: diff --git a/jedi/parser/grammar.txt b/jedi/parser/grammar2.7.txt similarity index 100% rename from jedi/parser/grammar.txt rename to jedi/parser/grammar2.7.txt