mirror of
https://github.com/python/cpython.git
synced 2025-10-09 16:34:44 +00:00
bpo-43798: Add source location attributes to alias (GH-25324)
* Add source location attributes to alias. * Move alias star construction to pegen helper. Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com> Co-authored-by: Pablo Galindo <Pablogsal@gmail.com>
This commit is contained in:
parent
e05a703848
commit
75a06f067b
11 changed files with 199 additions and 19 deletions
|
@ -3310,6 +3310,15 @@ import_from_targets_rule(Parser *p)
|
|||
}
|
||||
asdl_alias_seq* _res = NULL;
|
||||
int _mark = p->mark;
|
||||
if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
|
||||
p->error_indicator = 1;
|
||||
D(p->level--);
|
||||
return NULL;
|
||||
}
|
||||
int _start_lineno = p->tokens[_mark]->lineno;
|
||||
UNUSED(_start_lineno); // Only used by EXTRA macro
|
||||
int _start_col_offset = p->tokens[_mark]->col_offset;
|
||||
UNUSED(_start_col_offset); // Only used by EXTRA macro
|
||||
{ // '(' import_from_as_names ','? ')'
|
||||
if (p->error_indicator) {
|
||||
D(p->level--);
|
||||
|
@ -3377,7 +3386,16 @@ import_from_targets_rule(Parser *p)
|
|||
)
|
||||
{
|
||||
D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'"));
|
||||
_res = ( asdl_alias_seq * ) _PyPegen_singleton_seq ( p , CHECK ( alias_ty , _PyPegen_alias_for_star ( p ) ) );
|
||||
Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
|
||||
if (_token == NULL) {
|
||||
D(p->level--);
|
||||
return NULL;
|
||||
}
|
||||
int _end_lineno = _token->end_lineno;
|
||||
UNUSED(_end_lineno); // Only used by EXTRA macro
|
||||
int _end_col_offset = _token->end_col_offset;
|
||||
UNUSED(_end_col_offset); // Only used by EXTRA macro
|
||||
_res = ( asdl_alias_seq * ) _PyPegen_singleton_seq ( p , CHECK ( alias_ty , _PyPegen_alias_for_star ( p , EXTRA ) ) );
|
||||
if (_res == NULL && PyErr_Occurred()) {
|
||||
p->error_indicator = 1;
|
||||
D(p->level--);
|
||||
|
@ -3466,6 +3484,15 @@ import_from_as_name_rule(Parser *p)
|
|||
}
|
||||
alias_ty _res = NULL;
|
||||
int _mark = p->mark;
|
||||
if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
|
||||
p->error_indicator = 1;
|
||||
D(p->level--);
|
||||
return NULL;
|
||||
}
|
||||
int _start_lineno = p->tokens[_mark]->lineno;
|
||||
UNUSED(_start_lineno); // Only used by EXTRA macro
|
||||
int _start_col_offset = p->tokens[_mark]->col_offset;
|
||||
UNUSED(_start_col_offset); // Only used by EXTRA macro
|
||||
{ // NAME ['as' NAME]
|
||||
if (p->error_indicator) {
|
||||
D(p->level--);
|
||||
|
@ -3481,7 +3508,16 @@ import_from_as_name_rule(Parser *p)
|
|||
)
|
||||
{
|
||||
D(fprintf(stderr, "%*c+ import_from_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
|
||||
_res = _PyAST_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , p -> arena );
|
||||
Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
|
||||
if (_token == NULL) {
|
||||
D(p->level--);
|
||||
return NULL;
|
||||
}
|
||||
int _end_lineno = _token->end_lineno;
|
||||
UNUSED(_end_lineno); // Only used by EXTRA macro
|
||||
int _end_col_offset = _token->end_col_offset;
|
||||
UNUSED(_end_col_offset); // Only used by EXTRA macro
|
||||
_res = _PyAST_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , EXTRA );
|
||||
if (_res == NULL && PyErr_Occurred()) {
|
||||
p->error_indicator = 1;
|
||||
D(p->level--);
|
||||
|
@ -3551,6 +3587,15 @@ dotted_as_name_rule(Parser *p)
|
|||
}
|
||||
alias_ty _res = NULL;
|
||||
int _mark = p->mark;
|
||||
if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
|
||||
p->error_indicator = 1;
|
||||
D(p->level--);
|
||||
return NULL;
|
||||
}
|
||||
int _start_lineno = p->tokens[_mark]->lineno;
|
||||
UNUSED(_start_lineno); // Only used by EXTRA macro
|
||||
int _start_col_offset = p->tokens[_mark]->col_offset;
|
||||
UNUSED(_start_col_offset); // Only used by EXTRA macro
|
||||
{ // dotted_name ['as' NAME]
|
||||
if (p->error_indicator) {
|
||||
D(p->level--);
|
||||
|
@ -3566,7 +3611,16 @@ dotted_as_name_rule(Parser *p)
|
|||
)
|
||||
{
|
||||
D(fprintf(stderr, "%*c+ dotted_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
|
||||
_res = _PyAST_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , p -> arena );
|
||||
Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
|
||||
if (_token == NULL) {
|
||||
D(p->level--);
|
||||
return NULL;
|
||||
}
|
||||
int _end_lineno = _token->end_lineno;
|
||||
UNUSED(_end_lineno); // Only used by EXTRA macro
|
||||
int _end_col_offset = _token->end_col_offset;
|
||||
UNUSED(_end_col_offset); // Only used by EXTRA macro
|
||||
_res = _PyAST_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , EXTRA );
|
||||
if (_res == NULL && PyErr_Occurred()) {
|
||||
p->error_indicator = 1;
|
||||
D(p->level--);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue