From aea38ca9aad5adc6b129b2db8820a890447ed5c4 Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Wed, 4 Mar 2015 17:15:33 +0100 Subject: [PATCH] Remove the classify function in the parser. This could make Jedi a tiny bit faster. --- jedi/parser/pgen2/parse.py | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/jedi/parser/pgen2/parse.py b/jedi/parser/pgen2/parse.py index dcb9dbe6..18495695 100644 --- a/jedi/parser/pgen2/parse.py +++ b/jedi/parser/pgen2/parse.py @@ -115,9 +115,16 @@ class PgenParser(object): return self.rootnode def addtoken(self, type, value, prefix, start_pos): - """Add a token; return True iff this is the end of the program.""" + """Add a token; return True if this is the end of the program.""" # Map from token to label - ilabel = self.classify(type, value, start_pos) + if type == tokenize.NAME: + # Check for reserved words (keywords) + try: + ilabel = self.grammar.keywords[value] + except KeyError: + ilabel = self.grammar.tokens[type] + else: + ilabel = self.grammar.tokens[type] # Loop until the token is shifted; may raise exceptions while True: @@ -163,16 +170,6 @@ class PgenParser(object): value, start_pos, prefix, self.addtoken) break - def classify(self, type, value, start_pos): - """Turn a token into a label. (Internal)""" - if type == tokenize.NAME: - # Check for reserved words (keywords) - try: - return self.grammar.keywords[value] - except KeyError: - pass - return self.grammar.tokens[type] - def shift(self, type, value, newstate, prefix, start_pos): """Shift a token. (Internal)""" dfa, state, node = self.stack[-1]