Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
+1
  • Loading branch information
skirpichev committed Jul 29, 2026
commit c53a17ff508989d9f644d119b5d3fa6ea44b2e71
5 changes: 3 additions & 2 deletions Parser/pegen.c
Original file line number Diff line number Diff line change
Expand Up @@ -1054,7 +1054,9 @@ _PyPegen_run_parser_from_file_pointer(FILE *fp, int start_rule, PyObject *filena
PyCompilerFlags *flags, int *errcode,
PyObject **interactive_src, PyArena *arena)
{
struct tok_state *tok = _PyTokenizer_FromFile(fp, enc, ps1, ps2);
int parser_flags = compute_parser_flags(flags);
struct tok_state *tok = _PyTokenizer_FromFile(fp, enc, ps1, ps2,
parser_flags & PyPARSE_BARRY_AS_BDFL);
if (tok == NULL) {
if (PyErr_Occurred()) {
_PyTokenizer_raise_init_error(filename_ob);
Expand All @@ -1080,7 +1082,6 @@ _PyPegen_run_parser_from_file_pointer(FILE *fp, int start_rule, PyObject *filena
goto error;
}

int parser_flags = compute_parser_flags(flags);
Parser *p = _PyPegen_Parser_New(tok, start_rule, parser_flags, PY_MINOR_VERSION,
errcode, NULL, arena);
if (p == NULL) {
Expand Down
6 changes: 4 additions & 2 deletions Parser/tokenizer/file_tokenizer.c
Original file line number Diff line number Diff line change
Expand Up @@ -371,7 +371,8 @@ tok_underflow_file(struct tok_state *tok)
/* Set up tokenizer for file */
struct tok_state *
_PyTokenizer_FromFile(FILE *fp, const char* enc,
const char *ps1, const char *ps2)
const char *ps1, const char *ps2,
int BARRY_AS_BDFL)
{
struct tok_state *tok = _PyTokenizer_tok_new();
if (tok == NULL)
Expand Down Expand Up @@ -401,6 +402,7 @@ _PyTokenizer_FromFile(FILE *fp, const char* enc,
}
tok->decoding_state = STATE_NORMAL;
}
tok->BARRY_AS_BDFL = BARRY_AS_BDFL;
return tok;
}

Expand Down Expand Up @@ -457,7 +459,7 @@ _PyTokenizer_FindEncodingFilename(int fd, PyObject *filename)
if (fp == NULL) {
return NULL;
}
tok = _PyTokenizer_FromFile(fp, NULL, NULL, NULL);
tok = _PyTokenizer_FromFile(fp, NULL, NULL, NULL, 0);
if (tok == NULL) {
fclose(fp);
return NULL;
Expand Down
2 changes: 1 addition & 1 deletion Parser/tokenizer/tokenizer.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ struct tok_state *_PyTokenizer_FromString(const char *, int, int, int);
struct tok_state *_PyTokenizer_FromUTF8(const char *, int, int, int);
struct tok_state *_PyTokenizer_FromReadline(PyObject*, const char*, int, int);
struct tok_state *_PyTokenizer_FromFile(FILE *, const char*,
const char *, const char *);
const char *, const char *, int);

#define tok_dump _Py_tok_dump

Expand Down
Loading