Skip to content

Commit 5115a16

Browse files
authored
gh-93103: Parser uses PyConfig.parser_debug instead of Py_DebugFlag (#93106)
* Replace deprecated Py_DebugFlag with PyConfig.parser_debug in the parser. * Add Parser.debug member. * Add tok_state.debug member. * Py_FrozenMain(): Replace Py_VerboseFlag with PyConfig.verbose.
1 parent d2ef66a commit 5115a16

File tree

7 files changed

+14
-4
lines changed

7 files changed

+14
-4
lines changed

Parser/parser.c

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Parser/pegen.c

+3
Original file line numberDiff line numberDiff line change
@@ -774,6 +774,9 @@ _PyPegen_Parser_New(struct tok_state *tok, int start_rule, int flags,
774774
p->known_err_token = NULL;
775775
p->level = 0;
776776
p->call_invalid_rules = 0;
777+
#ifdef Py_DEBUG
778+
p->debug = _Py_GetConfig()->parser_debug;
779+
#endif
777780
return p;
778781
}
779782

Parser/pegen.h

+1
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ typedef struct {
7878
Token *known_err_token;
7979
int level;
8080
int call_invalid_rules;
81+
int debug;
8182
} Parser;
8283

8384
typedef struct {

Parser/tokenizer.c

+4-1
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,9 @@ tok_new(void)
8888
tok->async_def_nl = 0;
8989
tok->interactive_underflow = IUNDERFLOW_NORMAL;
9090
tok->str = NULL;
91+
#ifdef Py_DEBUG
92+
tok->debug = _Py_GetConfig()->parser_debug;
93+
#endif
9194
return tok;
9295
}
9396

@@ -1021,7 +1024,7 @@ tok_nextc(struct tok_state *tok)
10211024
rc = tok_underflow_file(tok);
10221025
}
10231026
#if defined(Py_DEBUG)
1024-
if (Py_DebugFlag) {
1027+
if (tok->debug) {
10251028
fprintf(stderr, "line[%d] = ", tok->lineno);
10261029
print_escape(stderr, tok->cur, tok->inp - tok->cur);
10271030
fprintf(stderr, " tok->done = %d\n", tok->done);

Parser/tokenizer.h

+3
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,9 @@ struct tok_state {
8484
NEWLINE token after it. */
8585
/* How to proceed when asked for a new token in interactive mode */
8686
enum interactive_underflow_t interactive_underflow;
87+
#ifdef Py_DEBUG
88+
int debug;
89+
#endif
8790
};
8891

8992
extern struct tok_state *_PyTokenizer_FromString(const char *, int);

Python/frozenmain.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ Py_FrozenMain(int argc, char **argv)
5353
PyWinFreeze_ExeInit();
5454
#endif
5555

56-
if (Py_VerboseFlag) {
56+
if (_Py_GetConfig()->verbose) {
5757
fprintf(stderr, "Python %s\n%s\n",
5858
Py_GetVersion(), Py_GetCopyright());
5959
}

Tools/peg_generator/pegen/c_generator.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
#include "pegen.h"
3333
3434
#if defined(Py_DEBUG) && defined(Py_BUILD_CORE)
35-
# define D(x) if (Py_DebugFlag) x;
35+
# define D(x) if (p->debug) { x; }
3636
#else
3737
# define D(x)
3838
#endif

0 commit comments

Comments
 (0)