Add a debug function for first tokens

This commit is contained in:
Dave Halter
2018-06-12 01:50:37 +02:00
parent 6f385bdba1
commit 23db71a5f7

View File

@@ -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