From 23db71a5f7199411ee8314d4ce2f18ec46e6fc03 Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Tue, 12 Jun 2018 01:50:37 +0200 Subject: [PATCH] Add a debug function for first tokens --- parso/pgen2/parse.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/parso/pgen2/parse.py b/parso/pgen2/parse.py index aaacfce..b3673a0 100644 --- a/parso/pgen2/parse.py +++ b/parso/pgen2/parse.py @@ -38,6 +38,21 @@ class Stack(list): tos = self[-1] return tos[2][1] + def get_tos_first_tokens(self, grammar): + tos = self[-1] + inv_tokens = {v: k for k, v in grammar.tokens.items()} + inv_keywords = {v: k for k, v in grammar.keywords.items()} + dfa, state, nodes = tos + + def check(): + for first in dfa[1]: + try: + yield inv_keywords[first] + except KeyError: + yield tokenize.tok_name[inv_tokens[first]] + + return list(check()) + def token_to_ilabel(grammar, type_, value): # Map from token to label