From 9cf9880bd1a7bf02a7e10fbb214a4e0da972b1a1 Mon Sep 17 00:00:00 2001 From: John Doty Date: Sat, 13 Apr 2024 12:32:26 -0700 Subject: [PATCH] faster: sort with None properly --- parser_faster.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/parser_faster.py b/parser_faster.py index b8c59e1..b9b8a21 100644 --- a/parser_faster.py +++ b/parser_faster.py @@ -455,7 +455,7 @@ class GenerateSLR1(GenerateLR0): ] result = {f for fs in firsts for f in fs} - return tuple(sorted(result)) + return tuple(sorted(result, key=lambda x: (x is None, x))) def gen_first(self, symbols, visited=None): """Compute the first set for a sequence of symbols. @@ -484,7 +484,7 @@ class GenerateSLR1(GenerateLR0): if None in result: result = tuple(s for s in result if s is not None) result = result + self.gen_first(symbols[1:], visited) - result = tuple(sorted(set(result))) + result = tuple(sorted(set(result), key=lambda x: (x is None, x))) return result def gen_follow(self, symbol, visited=None):