Skip to content

Commit c53a17f

Browse files
committed
+1
1 parent 73f2d90 commit c53a17f

3 files changed

Lines changed: 8 additions & 5 deletions

File tree

Parser/pegen.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1054,7 +1054,9 @@ _PyPegen_run_parser_from_file_pointer(FILE *fp, int start_rule, PyObject *filena
10541054
PyCompilerFlags *flags, int *errcode,
10551055
PyObject **interactive_src, PyArena *arena)
10561056
{
1057-
struct tok_state *tok = _PyTokenizer_FromFile(fp, enc, ps1, ps2);
1057+
int parser_flags = compute_parser_flags(flags);
1058+
struct tok_state *tok = _PyTokenizer_FromFile(fp, enc, ps1, ps2,
1059+
parser_flags & PyPARSE_BARRY_AS_BDFL);
10581060
if (tok == NULL) {
10591061
if (PyErr_Occurred()) {
10601062
_PyTokenizer_raise_init_error(filename_ob);
@@ -1080,7 +1082,6 @@ _PyPegen_run_parser_from_file_pointer(FILE *fp, int start_rule, PyObject *filena
10801082
goto error;
10811083
}
10821084

1083-
int parser_flags = compute_parser_flags(flags);
10841085
Parser *p = _PyPegen_Parser_New(tok, start_rule, parser_flags, PY_MINOR_VERSION,
10851086
errcode, NULL, arena);
10861087
if (p == NULL) {

Parser/tokenizer/file_tokenizer.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -371,7 +371,8 @@ tok_underflow_file(struct tok_state *tok)
371371
/* Set up tokenizer for file */
372372
struct tok_state *
373373
_PyTokenizer_FromFile(FILE *fp, const char* enc,
374-
const char *ps1, const char *ps2)
374+
const char *ps1, const char *ps2,
375+
int BARRY_AS_BDFL)
375376
{
376377
struct tok_state *tok = _PyTokenizer_tok_new();
377378
if (tok == NULL)
@@ -401,6 +402,7 @@ _PyTokenizer_FromFile(FILE *fp, const char* enc,
401402
}
402403
tok->decoding_state = STATE_NORMAL;
403404
}
405+
tok->BARRY_AS_BDFL = BARRY_AS_BDFL;
404406
return tok;
405407
}
406408

@@ -457,7 +459,7 @@ _PyTokenizer_FindEncodingFilename(int fd, PyObject *filename)
457459
if (fp == NULL) {
458460
return NULL;
459461
}
460-
tok = _PyTokenizer_FromFile(fp, NULL, NULL, NULL);
462+
tok = _PyTokenizer_FromFile(fp, NULL, NULL, NULL, 0);
461463
if (tok == NULL) {
462464
fclose(fp);
463465
return NULL;

Parser/tokenizer/tokenizer.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ struct tok_state *_PyTokenizer_FromString(const char *, int, int, int);
77
struct tok_state *_PyTokenizer_FromUTF8(const char *, int, int, int);
88
struct tok_state *_PyTokenizer_FromReadline(PyObject*, const char*, int, int);
99
struct tok_state *_PyTokenizer_FromFile(FILE *, const char*,
10-
const char *, const char *);
10+
const char *, const char *, int);
1111

1212
#define tok_dump _Py_tok_dump
1313

0 commit comments

Comments
 (0)