From f59e05f8e75e997da0244efc446a2642cf39da94 Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Mon, 12 Jan 2015 13:33:44 +0100 Subject: [PATCH] Switch grammars depending on Python version. --- jedi/api/__init__.py | 2 +- jedi/parser/__init__.py | 7 +++++++ jedi/parser/{grammar.txt => grammar2.7.txt} | 0 3 files changed, 8 insertions(+), 1 deletion(-) rename jedi/parser/{grammar.txt => grammar2.7.txt} (100%) 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