[pypy-commit] pypy pyparser-improvements-3: move classify method to Grammar where it makes more sense

cfbolz pypy.commits at gmail.com
Sat Apr 14 05:21:24 EDT 2018


Author: Carl Friedrich Bolz-Tereick <cfbolz at gmx.de>
Branch: pyparser-improvements-3
Changeset: r94318:d14ff1f951e6
Date: 2018-04-14 11:19 +0200
http://bitbucket.org/pypy/pypy/changeset/d14ff1f951e6/

Log:	move classify method to Grammar where it makes more sense

diff --git a/pypy/interpreter/pyparser/parser.py b/pypy/interpreter/pyparser/parser.py
--- a/pypy/interpreter/pyparser/parser.py
+++ b/pypy/interpreter/pyparser/parser.py
@@ -33,6 +33,18 @@
         new.token_ids = self.token_ids
         return new
 
+
+    def classify(self, token):
+        """Find the label for a token."""
+        if token.token_type == self.KEYWORD_TOKEN:
+            label_index = self.keyword_ids.get(token.value, -1)
+            if label_index != -1:
+                return label_index
+        label_index = self.token_ids.get(token.token_type, -1)
+        if label_index == -1:
+            raise ParseError("invalid token", token)
+        return label_index
+
     def _freeze_(self):
         # Remove some attributes not used in parsing.
         try:
@@ -271,7 +283,7 @@
         self.stack = StackEntry(None, self.grammar.dfas[start - 256], 0)
 
     def add_token(self, token):
-        label_index = self.classify(token)
+        label_index = self.grammar.classify(token)
         sym_id = 0 # for the annotator
         while True:
             dfa = self.stack.dfa
@@ -320,16 +332,6 @@
                         expected_str = None
                     raise ParseError("bad input", token, expected, expected_str)
 
-    def classify(self, token):
-        """Find the label for a token."""
-        if token.token_type == self.grammar.KEYWORD_TOKEN:
-            label_index = self.grammar.keyword_ids.get(token.value, -1)
-            if label_index != -1:
-                return label_index
-        label_index = self.grammar.token_ids.get(token.token_type, -1)
-        if label_index == -1:
-            raise ParseError("invalid token", token)
-        return label_index
 
     def shift(self, next_state, token):
         """Shift a non-terminal and prepare for the next state."""


More information about the pypy-commit mailing list