bpo-44368: Ensure we don't raise incorrect custom syntax errors with soft keywords (GH-26630)

(cherry picked from commit 457ce60fc70f1c9290023f46fb82b6a490dff32e)

Co-authored-by: Pablo Galindo <Pablogsal@gmail.com>
diff --git a/Parser/pegen.c b/Parser/pegen.c
index e651819..82f840c 100644
--- a/Parser/pegen.c
+++ b/Parser/pegen.c
@@ -936,10 +936,9 @@
     return token;
 }
 
-expr_ty
-_PyPegen_name_token(Parser *p)
+static expr_ty
+_PyPegen_name_from_token(Parser *p, Token* t)
 {
-    Token *t = _PyPegen_expect_token(p, NAME);
     if (t == NULL) {
         return NULL;
     }
@@ -957,6 +956,14 @@
                        t->end_col_offset, p->arena);
 }
 
+
+expr_ty
+_PyPegen_name_token(Parser *p)
+{
+    Token *t = _PyPegen_expect_token(p, NAME);
+    return _PyPegen_name_from_token(p, t);
+}
+
 void *
 _PyPegen_string_token(Parser *p)
 {
@@ -974,7 +981,7 @@
     PyBytes_AsStringAndSize(t->bytes, &the_token, &size);
     for (char **keyword = p->soft_keywords; *keyword != NULL; keyword++) {
         if (strncmp(*keyword, the_token, size) == 0) {
-            return _PyPegen_name_token(p);
+            return _PyPegen_name_from_token(p, t);
         }
     }
     return NULL;