Fixed
This commit is contained in:
@@ -1740,7 +1740,7 @@ def _parse_if(ps: Parser | t.CPtr) -> AST | t.CPtr:
|
||||
_expect_op(ps, TokOp.Colon)
|
||||
# 先用空 orelse 构造,后面填充
|
||||
empty: list[AST | t.CPtr] | t.CPtr = list[AST | t.CPtr](ps.pool, 8)
|
||||
node: AST | t.CPtr = If(ps.pool, test, empty)
|
||||
node: If | t.CPtr = If(ps.pool, test, empty)
|
||||
_parse_suite_into_children(ps, node)
|
||||
orelse: list[AST | t.CPtr] | t.CPtr = _parse_if_tail(ps)
|
||||
node.orelse = orelse
|
||||
@@ -1761,7 +1761,7 @@ def _parse_if_tail(ps: Parser | t.CPtr) -> list[AST | t.CPtr] | t.CPtr:
|
||||
elif_test: AST | t.CPtr = _parse_test(ps)
|
||||
_expect_op(ps, TokOp.Colon)
|
||||
empty: list[AST | t.CPtr] | t.CPtr = list[AST | t.CPtr](ps.pool, 8)
|
||||
elif_node: AST | t.CPtr = If(ps.pool, elif_test, empty)
|
||||
elif_node: If | t.CPtr = If(ps.pool, elif_test, empty)
|
||||
_parse_suite_into_children(ps, elif_node)
|
||||
elif_orelse: list[AST | t.CPtr] | t.CPtr = _parse_if_tail(ps)
|
||||
elif_node.orelse = elif_orelse
|
||||
@@ -1789,7 +1789,7 @@ def _parse_while(ps: Parser | t.CPtr) -> AST | t.CPtr:
|
||||
test: AST | t.CPtr = _parse_test(ps)
|
||||
_expect_op(ps, TokOp.Colon)
|
||||
empty: list[AST | t.CPtr] | t.CPtr = list[AST | t.CPtr](ps.pool, 8)
|
||||
node: AST | t.CPtr = While(ps.pool, test, empty)
|
||||
node: While | t.CPtr = While(ps.pool, test, empty)
|
||||
_parse_suite_into_children(ps, node)
|
||||
if _cur_kw(ps) == Keyword.Else:
|
||||
_advance(ps)
|
||||
@@ -1813,7 +1813,7 @@ def _parse_for(ps: Parser | t.CPtr, is_async: t.CInt) -> AST | t.CPtr:
|
||||
iter_: AST | t.CPtr = _parse_or_test(ps)
|
||||
_expect_op(ps, TokOp.Colon)
|
||||
empty: list[AST | t.CPtr] | t.CPtr = list[AST | t.CPtr](ps.pool, 8)
|
||||
node: AST | t.CPtr = For(ps.pool, target, iter_, empty, is_async)
|
||||
node: For | t.CPtr = For(ps.pool, target, iter_, empty, is_async)
|
||||
_fix_store_ctx(target)
|
||||
_parse_suite_into_children(ps, node)
|
||||
if _cur_kw(ps) == Keyword.Else:
|
||||
@@ -1832,7 +1832,7 @@ def _parse_try(ps: Parser | t.CPtr) -> AST | t.CPtr:
|
||||
_advance(ps) # try
|
||||
_expect_op(ps, TokOp.Colon)
|
||||
empty: list[AST | t.CPtr] | t.CPtr = list[AST | t.CPtr](ps.pool, 8)
|
||||
node: AST | t.CPtr = Try(ps.pool, empty, empty, empty)
|
||||
node: Try | t.CPtr = Try(ps.pool, empty, empty, empty)
|
||||
_parse_suite_into_children(ps, node)
|
||||
# handlers (except)
|
||||
handlers: list[AST | t.CPtr] | t.CPtr = list[AST | t.CPtr](ps.pool, 8)
|
||||
@@ -1895,7 +1895,7 @@ def _parse_with(ps: Parser | t.CPtr, is_async: t.CInt) -> AST | t.CPtr:
|
||||
if _cur_type(ps) == TokenType.NewLine or _cur_type(ps) == TokenType.Nl:
|
||||
break
|
||||
_expect_op(ps, TokOp.Colon)
|
||||
node: AST | t.CPtr = With(ps.pool, items, is_async)
|
||||
node: With | t.CPtr = With(ps.pool, items, is_async)
|
||||
_parse_suite_into_children(ps, node)
|
||||
_set_pos(node, lineno, col, 0, 0)
|
||||
return node
|
||||
@@ -1936,7 +1936,7 @@ def _parse_funcdef(ps: Parser | t.CPtr, is_async: t.CInt) -> AST | t.CPtr:
|
||||
_expect_op(ps, TokOp.Colon)
|
||||
dec_list: list[AST | t.CPtr] | t.CPtr = ps.pending_decorators
|
||||
ps.pending_decorators = None
|
||||
node: AST | t.CPtr = FunctionDef(ps.pool, name, args, dec_list, returns, is_async)
|
||||
node: FunctionDef | t.CPtr = FunctionDef(ps.pool, name, args, dec_list, returns, is_async)
|
||||
_parse_suite_into_children(ps, node)
|
||||
_set_pos(node, lineno, col, 0, 0)
|
||||
return node
|
||||
@@ -1991,7 +1991,7 @@ def _parse_classdef(ps: Parser | t.CPtr) -> AST | t.CPtr:
|
||||
_expect_op(ps, TokOp.Colon)
|
||||
dec_list: list[AST | t.CPtr] | t.CPtr = ps.pending_decorators
|
||||
ps.pending_decorators = None
|
||||
node: AST | t.CPtr = ClassDef(ps.pool, name, bases, keywords, dec_list, type_params)
|
||||
node: ClassDef | t.CPtr = ClassDef(ps.pool, name, bases, keywords, dec_list, type_params)
|
||||
_parse_suite_into_children(ps, node)
|
||||
_set_pos(node, lineno, col, 0, 0)
|
||||
return node
|
||||
@@ -2380,6 +2380,6 @@ def parse_tokens(pool: memhub.MemManager | t.CPtr,
|
||||
ps: Parser | t.CPtr = new_parser(pool)
|
||||
if ps is None: return None
|
||||
_parser_init(ps, tokens, pool)
|
||||
module_node: AST | t.CPtr = Module(pool)
|
||||
module_node: Module | t.CPtr = Module(pool)
|
||||
_parse_module_body(ps, module_node)
|
||||
return module_node
|
||||
|
||||
Reference in New Issue
Block a user