jaclang 0.5.11__py3-none-any.whl → 0.5.16__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of jaclang might be problematic. Click here for more details.
- jaclang/cli/cli.py +20 -0
- jaclang/compiler/__init__.py +35 -19
- jaclang/compiler/absyntree.py +106 -97
- jaclang/compiler/generated/jac_parser.py +4069 -0
- jaclang/compiler/jac.lark +655 -0
- jaclang/compiler/parser.py +44 -31
- jaclang/compiler/passes/main/fuse_typeinfo_pass.py +92 -37
- jaclang/compiler/passes/main/import_pass.py +8 -5
- jaclang/compiler/passes/main/pyast_gen_pass.py +512 -352
- jaclang/compiler/passes/main/pyast_load_pass.py +271 -64
- jaclang/compiler/passes/main/registry_pass.py +3 -7
- jaclang/compiler/passes/main/tests/test_pyast_gen_pass.py +2 -0
- jaclang/compiler/passes/main/type_check_pass.py +4 -1
- jaclang/compiler/passes/tool/jac_formatter_pass.py +7 -0
- jaclang/compiler/passes/tool/tests/test_unparse_validate.py +16 -0
- jaclang/compiler/passes/utils/mypy_ast_build.py +93 -0
- jaclang/compiler/tests/test_importer.py +15 -0
- jaclang/core/aott.py +4 -3
- jaclang/core/construct.py +1 -1
- jaclang/core/importer.py +109 -51
- jaclang/core/llms.py +29 -0
- jaclang/core/registry.py +22 -0
- jaclang/core/utils.py +72 -0
- jaclang/plugin/default.py +127 -8
- jaclang/plugin/feature.py +29 -2
- jaclang/plugin/spec.py +25 -2
- jaclang/utils/helpers.py +7 -9
- jaclang/utils/lang_tools.py +37 -13
- jaclang/utils/test.py +1 -3
- jaclang/utils/tests/test_lang_tools.py +6 -0
- jaclang/vendor/lark/grammars/common.lark +59 -0
- jaclang/vendor/lark/grammars/lark.lark +62 -0
- jaclang/vendor/lark/grammars/python.lark +302 -0
- jaclang/vendor/lark/grammars/unicode.lark +7 -0
- {jaclang-0.5.11.dist-info → jaclang-0.5.16.dist-info}/METADATA +1 -1
- {jaclang-0.5.11.dist-info → jaclang-0.5.16.dist-info}/RECORD +40 -34
- jaclang/compiler/__jac_gen__/jac_parser.py +0 -4069
- /jaclang/compiler/{__jac_gen__ → generated}/__init__.py +0 -0
- {jaclang-0.5.11.dist-info → jaclang-0.5.16.dist-info}/WHEEL +0 -0
- {jaclang-0.5.11.dist-info → jaclang-0.5.16.dist-info}/entry_points.txt +0 -0
- {jaclang-0.5.11.dist-info → jaclang-0.5.16.dist-info}/top_level.txt +0 -0
jaclang/compiler/absyntree.py
CHANGED
|
@@ -327,7 +327,7 @@ class SubTag(AstNode, Generic[T]):
|
|
|
327
327
|
def normalize(self, deep: bool = False) -> bool:
|
|
328
328
|
"""Normalize sub tag node."""
|
|
329
329
|
res = self.tag.normalize() if deep else True
|
|
330
|
-
|
|
330
|
+
self.set_kids(nodes=[self.gen_token(Tok.COLON), self.tag])
|
|
331
331
|
return res
|
|
332
332
|
|
|
333
333
|
|
|
@@ -370,7 +370,7 @@ class SubNodeList(AstNode, Generic[T]):
|
|
|
370
370
|
new_kid.pop()
|
|
371
371
|
if self.right_enc:
|
|
372
372
|
new_kid.append(self.right_enc)
|
|
373
|
-
|
|
373
|
+
self.set_kids(nodes=new_kid if len(new_kid) else [EmptyToken()])
|
|
374
374
|
return res
|
|
375
375
|
|
|
376
376
|
|
|
@@ -414,7 +414,7 @@ class Module(AstDocNode):
|
|
|
414
414
|
if self.doc:
|
|
415
415
|
new_kid.append(self.doc)
|
|
416
416
|
new_kid.extend(self.body)
|
|
417
|
-
|
|
417
|
+
self.set_kids(nodes=new_kid)
|
|
418
418
|
return res
|
|
419
419
|
|
|
420
420
|
def unparse(self) -> str:
|
|
@@ -458,7 +458,7 @@ class GlobalVars(ElementStmt, AstAccessNode):
|
|
|
458
458
|
if self.access:
|
|
459
459
|
new_kid.append(self.access)
|
|
460
460
|
new_kid.append(self.assignments)
|
|
461
|
-
|
|
461
|
+
self.set_kids(nodes=new_kid)
|
|
462
462
|
return res
|
|
463
463
|
|
|
464
464
|
|
|
@@ -517,7 +517,7 @@ class Test(AstSymbolNode, ElementStmt):
|
|
|
517
517
|
new_kid.append(self.gen_token(Tok.KW_TEST))
|
|
518
518
|
new_kid.append(self.name)
|
|
519
519
|
new_kid.append(self.body)
|
|
520
|
-
|
|
520
|
+
self.set_kids(nodes=new_kid)
|
|
521
521
|
return res
|
|
522
522
|
|
|
523
523
|
|
|
@@ -552,7 +552,7 @@ class ModuleCode(ElementStmt, ArchBlockStmt, EnumBlockStmt):
|
|
|
552
552
|
if self.name:
|
|
553
553
|
new_kid.append(self.name)
|
|
554
554
|
new_kid.append(self.body)
|
|
555
|
-
|
|
555
|
+
self.set_kids(nodes=new_kid)
|
|
556
556
|
return res
|
|
557
557
|
|
|
558
558
|
|
|
@@ -582,7 +582,7 @@ class PyInlineCode(ElementStmt, ArchBlockStmt, EnumBlockStmt, CodeBlockStmt):
|
|
|
582
582
|
new_kid.append(self.gen_token(Tok.PYNLINE))
|
|
583
583
|
new_kid.append(self.code)
|
|
584
584
|
new_kid.append(self.gen_token(Tok.PYNLINE))
|
|
585
|
-
|
|
585
|
+
self.set_kids(nodes=new_kid)
|
|
586
586
|
return res
|
|
587
587
|
|
|
588
588
|
|
|
@@ -633,7 +633,7 @@ class Import(ElementStmt, CodeBlockStmt):
|
|
|
633
633
|
new_kid.append(self.gen_token(Tok.COMMA))
|
|
634
634
|
new_kid.append(self.items)
|
|
635
635
|
new_kid.append(self.gen_token(Tok.SEMI))
|
|
636
|
-
|
|
636
|
+
self.set_kids(nodes=new_kid)
|
|
637
637
|
return res
|
|
638
638
|
|
|
639
639
|
|
|
@@ -671,8 +671,8 @@ class ModulePath(AstSymbolNode):
|
|
|
671
671
|
res = res and p.normalize(deep)
|
|
672
672
|
res = res and self.alias.normalize(deep) if self.alias else res
|
|
673
673
|
new_kid: list[AstNode] = []
|
|
674
|
-
|
|
675
|
-
|
|
674
|
+
for _ in range(self.level):
|
|
675
|
+
new_kid.append(self.gen_token(Tok.DOT))
|
|
676
676
|
if self.path:
|
|
677
677
|
for p in self.path:
|
|
678
678
|
res = res and p.normalize(deep)
|
|
@@ -681,8 +681,9 @@ class ModulePath(AstSymbolNode):
|
|
|
681
681
|
new_kid.pop()
|
|
682
682
|
if self.alias:
|
|
683
683
|
res = res and self.alias.normalize(deep)
|
|
684
|
+
new_kid.append(self.gen_token(Tok.KW_AS))
|
|
684
685
|
new_kid.append(self.alias)
|
|
685
|
-
|
|
686
|
+
self.set_kids(nodes=new_kid)
|
|
686
687
|
return res
|
|
687
688
|
|
|
688
689
|
@property
|
|
@@ -723,7 +724,7 @@ class ModuleItem(AstSymbolNode):
|
|
|
723
724
|
if self.alias:
|
|
724
725
|
new_kid.append(self.gen_token(Tok.KW_AS))
|
|
725
726
|
new_kid.append(self.alias)
|
|
726
|
-
|
|
727
|
+
self.set_kids(nodes=new_kid)
|
|
727
728
|
return res
|
|
728
729
|
|
|
729
730
|
|
|
@@ -822,7 +823,7 @@ class Architype(ArchSpec, AstAccessNode, ArchBlockStmt, AstImplNeedingNode):
|
|
|
822
823
|
new_kid.append(self.body)
|
|
823
824
|
else:
|
|
824
825
|
new_kid.append(self.gen_token(Tok.SEMI))
|
|
825
|
-
|
|
826
|
+
self.set_kids(nodes=new_kid)
|
|
826
827
|
return res
|
|
827
828
|
|
|
828
829
|
|
|
@@ -864,7 +865,7 @@ class ArchDef(ArchSpec, AstImplOnlyNode):
|
|
|
864
865
|
new_kid.append(self.doc)
|
|
865
866
|
new_kid.append(self.target)
|
|
866
867
|
new_kid.append(self.body)
|
|
867
|
-
|
|
868
|
+
self.set_kids(nodes=new_kid)
|
|
868
869
|
return res
|
|
869
870
|
|
|
870
871
|
|
|
@@ -933,7 +934,7 @@ class Enum(ArchSpec, AstAccessNode, AstImplNeedingNode, ArchBlockStmt):
|
|
|
933
934
|
new_kid.append(self.gen_token(Tok.RBRACE))
|
|
934
935
|
else:
|
|
935
936
|
new_kid.append(self.gen_token(Tok.SEMI))
|
|
936
|
-
|
|
937
|
+
self.set_kids(nodes=new_kid)
|
|
937
938
|
return res
|
|
938
939
|
|
|
939
940
|
|
|
@@ -977,7 +978,7 @@ class EnumDef(ArchSpec, AstImplOnlyNode):
|
|
|
977
978
|
new_kid.append(self.gen_token(Tok.LBRACE))
|
|
978
979
|
new_kid.append(self.body)
|
|
979
980
|
new_kid.append(self.gen_token(Tok.RBRACE))
|
|
980
|
-
|
|
981
|
+
self.set_kids(nodes=new_kid)
|
|
981
982
|
return res
|
|
982
983
|
|
|
983
984
|
|
|
@@ -1101,7 +1102,7 @@ class Ability(
|
|
|
1101
1102
|
new_kid.append(self.gen_token(Tok.SEMI))
|
|
1102
1103
|
else:
|
|
1103
1104
|
new_kid.append(self.gen_token(Tok.SEMI))
|
|
1104
|
-
|
|
1105
|
+
self.set_kids(nodes=new_kid)
|
|
1105
1106
|
return res
|
|
1106
1107
|
|
|
1107
1108
|
|
|
@@ -1149,7 +1150,7 @@ class AbilityDef(AstSymbolNode, ElementStmt, AstImplOnlyNode, CodeBlockStmt):
|
|
|
1149
1150
|
|
|
1150
1151
|
new_kid.append(self.body)
|
|
1151
1152
|
|
|
1152
|
-
|
|
1153
|
+
self.set_kids(nodes=new_kid)
|
|
1153
1154
|
return res
|
|
1154
1155
|
|
|
1155
1156
|
@property
|
|
@@ -1194,7 +1195,7 @@ class FuncSignature(AstSemStrNode):
|
|
|
1194
1195
|
new_kid.append(self.semstr)
|
|
1195
1196
|
new_kid.append(self.gen_token(Tok.COLON))
|
|
1196
1197
|
new_kid.append(self.return_type)
|
|
1197
|
-
|
|
1198
|
+
self.set_kids(nodes=new_kid)
|
|
1198
1199
|
return res
|
|
1199
1200
|
|
|
1200
1201
|
@property
|
|
@@ -1253,7 +1254,7 @@ class EventSignature(AstSemStrNode):
|
|
|
1253
1254
|
new_kid.append(self.semstr)
|
|
1254
1255
|
new_kid.append(self.gen_token(Tok.RETURN_HINT))
|
|
1255
1256
|
new_kid.append(self.return_type)
|
|
1256
|
-
|
|
1257
|
+
self.set_kids(nodes=new_kid)
|
|
1257
1258
|
return res
|
|
1258
1259
|
|
|
1259
1260
|
@property
|
|
@@ -1289,7 +1290,7 @@ class ArchRefChain(AstNode):
|
|
|
1289
1290
|
new_kid: list[AstNode] = []
|
|
1290
1291
|
for a in self.archs:
|
|
1291
1292
|
new_kid.append(a)
|
|
1292
|
-
|
|
1293
|
+
self.set_kids(nodes=new_kid)
|
|
1293
1294
|
return res
|
|
1294
1295
|
|
|
1295
1296
|
def py_resolve_name(self) -> str:
|
|
@@ -1358,7 +1359,7 @@ class ParamVar(AstSymbolNode, AstTypedVarNode, AstSemStrNode):
|
|
|
1358
1359
|
if self.value:
|
|
1359
1360
|
new_kid.append(self.gen_token(Tok.EQ))
|
|
1360
1361
|
new_kid.append(self.value)
|
|
1361
|
-
|
|
1362
|
+
self.set_kids(nodes=new_kid)
|
|
1362
1363
|
return res
|
|
1363
1364
|
|
|
1364
1365
|
|
|
@@ -1403,7 +1404,7 @@ class ArchHas(AstAccessNode, AstDocNode, ArchBlockStmt):
|
|
|
1403
1404
|
new_kid.append(self.access)
|
|
1404
1405
|
new_kid.append(self.vars)
|
|
1405
1406
|
new_kid.append(self.gen_token(Tok.SEMI))
|
|
1406
|
-
|
|
1407
|
+
self.set_kids(nodes=new_kid)
|
|
1407
1408
|
return res
|
|
1408
1409
|
|
|
1409
1410
|
|
|
@@ -1453,7 +1454,7 @@ class HasVar(AstSymbolNode, AstTypedVarNode, AstSemStrNode):
|
|
|
1453
1454
|
if self.defer:
|
|
1454
1455
|
new_kid.append(self.gen_token(Tok.KW_BY))
|
|
1455
1456
|
new_kid.append(self.gen_token(Tok.KW_POST_INIT))
|
|
1456
|
-
|
|
1457
|
+
self.set_kids(nodes=new_kid)
|
|
1457
1458
|
return res
|
|
1458
1459
|
|
|
1459
1460
|
|
|
@@ -1482,7 +1483,7 @@ class TypedCtxBlock(CodeBlockStmt):
|
|
|
1482
1483
|
self.type_ctx,
|
|
1483
1484
|
self.body,
|
|
1484
1485
|
]
|
|
1485
|
-
|
|
1486
|
+
self.set_kids(nodes=new_kid)
|
|
1486
1487
|
return res
|
|
1487
1488
|
|
|
1488
1489
|
|
|
@@ -1516,7 +1517,7 @@ class IfStmt(CodeBlockStmt, AstElseBodyNode):
|
|
|
1516
1517
|
]
|
|
1517
1518
|
if self.else_body:
|
|
1518
1519
|
new_kid.append(self.else_body)
|
|
1519
|
-
|
|
1520
|
+
self.set_kids(nodes=new_kid)
|
|
1520
1521
|
return res
|
|
1521
1522
|
|
|
1522
1523
|
|
|
@@ -1537,7 +1538,7 @@ class ElseIf(IfStmt):
|
|
|
1537
1538
|
]
|
|
1538
1539
|
if self.else_body:
|
|
1539
1540
|
new_kid.append(self.else_body)
|
|
1540
|
-
|
|
1541
|
+
self.set_kids(nodes=new_kid)
|
|
1541
1542
|
return res
|
|
1542
1543
|
|
|
1543
1544
|
|
|
@@ -1562,7 +1563,7 @@ class ElseStmt(AstNode):
|
|
|
1562
1563
|
self.gen_token(Tok.KW_ELSE),
|
|
1563
1564
|
self.body,
|
|
1564
1565
|
]
|
|
1565
|
-
|
|
1566
|
+
self.set_kids(nodes=new_kid)
|
|
1566
1567
|
return res
|
|
1567
1568
|
|
|
1568
1569
|
|
|
@@ -1590,7 +1591,7 @@ class ExprStmt(CodeBlockStmt):
|
|
|
1590
1591
|
else:
|
|
1591
1592
|
new_kid.append(self.expr)
|
|
1592
1593
|
new_kid.append(self.gen_token(Tok.SEMI))
|
|
1593
|
-
|
|
1594
|
+
self.set_kids(nodes=new_kid)
|
|
1594
1595
|
return res and self.expr is not None
|
|
1595
1596
|
|
|
1596
1597
|
|
|
@@ -1632,7 +1633,7 @@ class TryStmt(AstElseBodyNode, CodeBlockStmt):
|
|
|
1632
1633
|
new_kid.append(self.else_body)
|
|
1633
1634
|
if self.finally_body:
|
|
1634
1635
|
new_kid.append(self.finally_body)
|
|
1635
|
-
|
|
1636
|
+
self.set_kids(nodes=new_kid)
|
|
1636
1637
|
return res
|
|
1637
1638
|
|
|
1638
1639
|
|
|
@@ -1667,7 +1668,7 @@ class Except(CodeBlockStmt):
|
|
|
1667
1668
|
new_kid.append(self.gen_token(Tok.KW_AS))
|
|
1668
1669
|
new_kid.append(self.name)
|
|
1669
1670
|
new_kid.append(self.body)
|
|
1670
|
-
|
|
1671
|
+
self.set_kids(nodes=new_kid)
|
|
1671
1672
|
return res
|
|
1672
1673
|
|
|
1673
1674
|
|
|
@@ -1692,7 +1693,7 @@ class FinallyStmt(CodeBlockStmt):
|
|
|
1692
1693
|
self.gen_token(Tok.KW_FINALLY),
|
|
1693
1694
|
]
|
|
1694
1695
|
new_kid.append(self.body)
|
|
1695
|
-
|
|
1696
|
+
self.set_kids(nodes=new_kid)
|
|
1696
1697
|
return res
|
|
1697
1698
|
|
|
1698
1699
|
|
|
@@ -1739,7 +1740,7 @@ class IterForStmt(AstAsyncNode, AstElseBodyNode, CodeBlockStmt):
|
|
|
1739
1740
|
new_kid.append(self.body)
|
|
1740
1741
|
if self.else_body:
|
|
1741
1742
|
new_kid.append(self.else_body)
|
|
1742
|
-
|
|
1743
|
+
self.set_kids(nodes=new_kid)
|
|
1743
1744
|
return res
|
|
1744
1745
|
|
|
1745
1746
|
|
|
@@ -1783,7 +1784,7 @@ class InForStmt(AstAsyncNode, AstElseBodyNode, CodeBlockStmt):
|
|
|
1783
1784
|
new_kid.append(self.body)
|
|
1784
1785
|
if self.else_body:
|
|
1785
1786
|
new_kid.append(self.else_body)
|
|
1786
|
-
|
|
1787
|
+
self.set_kids(nodes=new_kid)
|
|
1787
1788
|
return res
|
|
1788
1789
|
|
|
1789
1790
|
|
|
@@ -1813,7 +1814,7 @@ class WhileStmt(CodeBlockStmt):
|
|
|
1813
1814
|
]
|
|
1814
1815
|
if self.body:
|
|
1815
1816
|
new_kid.append(self.body)
|
|
1816
|
-
|
|
1817
|
+
self.set_kids(nodes=new_kid)
|
|
1817
1818
|
return res
|
|
1818
1819
|
|
|
1819
1820
|
|
|
@@ -1848,7 +1849,7 @@ class WithStmt(AstAsyncNode, CodeBlockStmt):
|
|
|
1848
1849
|
new_kid.append(self.body)
|
|
1849
1850
|
new_kid.append(self.gen_token(Tok.RBRACE))
|
|
1850
1851
|
|
|
1851
|
-
|
|
1852
|
+
self.set_kids(nodes=new_kid)
|
|
1852
1853
|
return res
|
|
1853
1854
|
|
|
1854
1855
|
|
|
@@ -1876,7 +1877,7 @@ class ExprAsItem(AstNode):
|
|
|
1876
1877
|
if self.alias:
|
|
1877
1878
|
new_kid.append(self.gen_token(Tok.KW_AS))
|
|
1878
1879
|
new_kid.append(self.alias)
|
|
1879
|
-
|
|
1880
|
+
self.set_kids(nodes=new_kid)
|
|
1880
1881
|
return res
|
|
1881
1882
|
|
|
1882
1883
|
|
|
@@ -1907,7 +1908,7 @@ class RaiseStmt(CodeBlockStmt):
|
|
|
1907
1908
|
new_kid.append(self.gen_token(Tok.KW_FROM))
|
|
1908
1909
|
new_kid.append(self.from_target)
|
|
1909
1910
|
new_kid.append(self.gen_token(Tok.SEMI))
|
|
1910
|
-
|
|
1911
|
+
self.set_kids(nodes=new_kid)
|
|
1911
1912
|
return res
|
|
1912
1913
|
|
|
1913
1914
|
|
|
@@ -1939,7 +1940,7 @@ class AssertStmt(CodeBlockStmt):
|
|
|
1939
1940
|
new_kid.append(self.gen_token(Tok.COMMA))
|
|
1940
1941
|
new_kid.append(self.error_msg)
|
|
1941
1942
|
new_kid.append(self.gen_token(Tok.SEMI))
|
|
1942
|
-
|
|
1943
|
+
self.set_kids(nodes=new_kid)
|
|
1943
1944
|
return res
|
|
1944
1945
|
|
|
1945
1946
|
|
|
@@ -1961,7 +1962,7 @@ class CtrlStmt(CodeBlockStmt):
|
|
|
1961
1962
|
if deep:
|
|
1962
1963
|
res = self.ctrl.normalize(deep)
|
|
1963
1964
|
new_kid: list[AstNode] = [self.ctrl, self.gen_token(Tok.SEMI)]
|
|
1964
|
-
|
|
1965
|
+
self.set_kids(nodes=new_kid)
|
|
1965
1966
|
return res
|
|
1966
1967
|
|
|
1967
1968
|
|
|
@@ -1987,7 +1988,7 @@ class DeleteStmt(CodeBlockStmt):
|
|
|
1987
1988
|
self.target,
|
|
1988
1989
|
self.gen_token(Tok.SEMI),
|
|
1989
1990
|
]
|
|
1990
|
-
|
|
1991
|
+
self.set_kids(nodes=new_kid)
|
|
1991
1992
|
return res
|
|
1992
1993
|
|
|
1993
1994
|
|
|
@@ -2013,7 +2014,7 @@ class ReportStmt(CodeBlockStmt):
|
|
|
2013
2014
|
self.expr,
|
|
2014
2015
|
self.gen_token(Tok.SEMI),
|
|
2015
2016
|
]
|
|
2016
|
-
|
|
2017
|
+
self.set_kids(nodes=new_kid)
|
|
2017
2018
|
return res
|
|
2018
2019
|
|
|
2019
2020
|
|
|
@@ -2040,7 +2041,7 @@ class ReturnStmt(CodeBlockStmt):
|
|
|
2040
2041
|
if self.expr:
|
|
2041
2042
|
new_kid.append(self.expr)
|
|
2042
2043
|
new_kid.append(self.gen_token(Tok.SEMI))
|
|
2043
|
-
|
|
2044
|
+
self.set_kids(nodes=new_kid)
|
|
2044
2045
|
return res
|
|
2045
2046
|
|
|
2046
2047
|
|
|
@@ -2067,7 +2068,7 @@ class IgnoreStmt(WalkerStmtOnlyNode, CodeBlockStmt):
|
|
|
2067
2068
|
self.target,
|
|
2068
2069
|
self.gen_token(Tok.SEMI),
|
|
2069
2070
|
]
|
|
2070
|
-
|
|
2071
|
+
self.set_kids(nodes=new_kid)
|
|
2071
2072
|
return res
|
|
2072
2073
|
|
|
2073
2074
|
|
|
@@ -2106,7 +2107,7 @@ class VisitStmt(WalkerStmtOnlyNode, AstElseBodyNode, CodeBlockStmt):
|
|
|
2106
2107
|
new_kid.append(self.else_body)
|
|
2107
2108
|
else:
|
|
2108
2109
|
new_kid.append(self.gen_token(Tok.SEMI))
|
|
2109
|
-
|
|
2110
|
+
self.set_kids(nodes=new_kid)
|
|
2110
2111
|
return res
|
|
2111
2112
|
|
|
2112
2113
|
|
|
@@ -2137,7 +2138,7 @@ class RevisitStmt(WalkerStmtOnlyNode, AstElseBodyNode, CodeBlockStmt):
|
|
|
2137
2138
|
if self.else_body:
|
|
2138
2139
|
new_kid.append(self.else_body)
|
|
2139
2140
|
new_kid.append(self.gen_token(Tok.SEMI))
|
|
2140
|
-
|
|
2141
|
+
self.set_kids(nodes=new_kid)
|
|
2141
2142
|
return res
|
|
2142
2143
|
|
|
2143
2144
|
|
|
@@ -2158,7 +2159,7 @@ class DisengageStmt(WalkerStmtOnlyNode, CodeBlockStmt):
|
|
|
2158
2159
|
self.gen_token(Tok.KW_DISENGAGE),
|
|
2159
2160
|
self.gen_token(Tok.SEMI),
|
|
2160
2161
|
]
|
|
2161
|
-
|
|
2162
|
+
self.set_kids(nodes=new_kid)
|
|
2162
2163
|
return True
|
|
2163
2164
|
|
|
2164
2165
|
|
|
@@ -2183,7 +2184,7 @@ class AwaitExpr(Expr):
|
|
|
2183
2184
|
self.gen_token(Tok.KW_AWAIT),
|
|
2184
2185
|
self.target,
|
|
2185
2186
|
]
|
|
2186
|
-
|
|
2187
|
+
self.set_kids(nodes=new_kid)
|
|
2187
2188
|
return res
|
|
2188
2189
|
|
|
2189
2190
|
|
|
@@ -2209,7 +2210,7 @@ class GlobalStmt(CodeBlockStmt):
|
|
|
2209
2210
|
self.target,
|
|
2210
2211
|
self.gen_token(Tok.SEMI),
|
|
2211
2212
|
]
|
|
2212
|
-
|
|
2213
|
+
self.set_kids(nodes=new_kid)
|
|
2213
2214
|
return res
|
|
2214
2215
|
|
|
2215
2216
|
|
|
@@ -2226,7 +2227,7 @@ class NonLocalStmt(GlobalStmt):
|
|
|
2226
2227
|
self.target,
|
|
2227
2228
|
self.gen_token(Tok.SEMI),
|
|
2228
2229
|
]
|
|
2229
|
-
|
|
2230
|
+
self.set_kids(nodes=new_kid)
|
|
2230
2231
|
return res
|
|
2231
2232
|
|
|
2232
2233
|
|
|
@@ -2282,7 +2283,7 @@ class Assignment(AstSemStrNode, AstTypedVarNode, EnumBlockStmt, CodeBlockStmt):
|
|
|
2282
2283
|
new_kid.append(self.gen_token(Tok.SEMI))
|
|
2283
2284
|
elif (not self.is_enum_stmt) and not isinstance(self.parent, IterForStmt):
|
|
2284
2285
|
new_kid.append(self.gen_token(Tok.SEMI))
|
|
2285
|
-
|
|
2286
|
+
self.set_kids(nodes=new_kid)
|
|
2286
2287
|
return res
|
|
2287
2288
|
|
|
2288
2289
|
|
|
@@ -2316,7 +2317,7 @@ class BinaryExpr(Expr):
|
|
|
2316
2317
|
self.right,
|
|
2317
2318
|
self.gen_token(Tok.RPAREN),
|
|
2318
2319
|
]
|
|
2319
|
-
|
|
2320
|
+
self.set_kids(nodes=new_kid)
|
|
2320
2321
|
return res
|
|
2321
2322
|
|
|
2322
2323
|
|
|
@@ -2349,7 +2350,7 @@ class CompareExpr(Expr):
|
|
|
2349
2350
|
for i, right in enumerate(self.rights):
|
|
2350
2351
|
new_kid.append(self.ops[i])
|
|
2351
2352
|
new_kid.append(right)
|
|
2352
|
-
|
|
2353
|
+
self.set_kids(nodes=new_kid)
|
|
2353
2354
|
return res
|
|
2354
2355
|
|
|
2355
2356
|
|
|
@@ -2379,7 +2380,7 @@ class BoolExpr(Expr):
|
|
|
2379
2380
|
if i > 0:
|
|
2380
2381
|
new_kid.append(self.op)
|
|
2381
2382
|
new_kid.append(value)
|
|
2382
|
-
|
|
2383
|
+
self.set_kids(nodes=new_kid)
|
|
2383
2384
|
return res
|
|
2384
2385
|
|
|
2385
2386
|
|
|
@@ -2410,7 +2411,7 @@ class LambdaExpr(Expr):
|
|
|
2410
2411
|
self.body,
|
|
2411
2412
|
self.gen_token(Tok.SEMI),
|
|
2412
2413
|
]
|
|
2413
|
-
|
|
2414
|
+
self.set_kids(nodes=new_kid)
|
|
2414
2415
|
return res
|
|
2415
2416
|
|
|
2416
2417
|
|
|
@@ -2435,7 +2436,7 @@ class UnaryExpr(Expr):
|
|
|
2435
2436
|
res = self.operand.normalize(deep)
|
|
2436
2437
|
res = res and self.op.normalize(deep) if self.op else res
|
|
2437
2438
|
new_kid: list[AstNode] = [self.op, self.operand]
|
|
2438
|
-
|
|
2439
|
+
self.set_kids(nodes=new_kid)
|
|
2439
2440
|
return res
|
|
2440
2441
|
|
|
2441
2442
|
|
|
@@ -2469,7 +2470,7 @@ class IfElseExpr(Expr):
|
|
|
2469
2470
|
self.gen_token(Tok.KW_ELSE),
|
|
2470
2471
|
self.else_value,
|
|
2471
2472
|
]
|
|
2472
|
-
|
|
2473
|
+
self.set_kids(nodes=new_kid)
|
|
2473
2474
|
return res
|
|
2474
2475
|
|
|
2475
2476
|
|
|
@@ -2500,7 +2501,7 @@ class MultiString(AtomExpr):
|
|
|
2500
2501
|
new_kid: list[AstNode] = []
|
|
2501
2502
|
for string in self.strings:
|
|
2502
2503
|
new_kid.append(string)
|
|
2503
|
-
|
|
2504
|
+
self.set_kids(nodes=new_kid)
|
|
2504
2505
|
return res
|
|
2505
2506
|
|
|
2506
2507
|
|
|
@@ -2535,7 +2536,7 @@ class FString(AtomExpr):
|
|
|
2535
2536
|
"{{" if i.value == "{" else "}}" if i.value == "}" else i.value
|
|
2536
2537
|
)
|
|
2537
2538
|
new_kid.append(self.parts)
|
|
2538
|
-
|
|
2539
|
+
self.set_kids(nodes=new_kid)
|
|
2539
2540
|
return res
|
|
2540
2541
|
|
|
2541
2542
|
|
|
@@ -2568,7 +2569,7 @@ class ListVal(AtomExpr):
|
|
|
2568
2569
|
if self.values:
|
|
2569
2570
|
new_kid.append(self.values)
|
|
2570
2571
|
new_kid.append(self.gen_token(Tok.RSQUARE))
|
|
2571
|
-
|
|
2572
|
+
self.set_kids(nodes=new_kid)
|
|
2572
2573
|
return res
|
|
2573
2574
|
|
|
2574
2575
|
|
|
@@ -2601,7 +2602,7 @@ class SetVal(AtomExpr):
|
|
|
2601
2602
|
if self.values:
|
|
2602
2603
|
new_kid.append(self.values)
|
|
2603
2604
|
new_kid.append(self.gen_token(Tok.RBRACE))
|
|
2604
|
-
|
|
2605
|
+
self.set_kids(nodes=new_kid)
|
|
2605
2606
|
return res
|
|
2606
2607
|
|
|
2607
2608
|
|
|
@@ -2649,7 +2650,7 @@ class TupleVal(AtomExpr):
|
|
|
2649
2650
|
new_kid.append(self.gen_token(Tok.COMMA))
|
|
2650
2651
|
if not in_ret_type:
|
|
2651
2652
|
new_kid.append(self.gen_token(Tok.RPAREN))
|
|
2652
|
-
|
|
2653
|
+
self.set_kids(nodes=new_kid)
|
|
2653
2654
|
return res
|
|
2654
2655
|
|
|
2655
2656
|
|
|
@@ -2685,7 +2686,7 @@ class DictVal(AtomExpr):
|
|
|
2685
2686
|
if i < len(self.kv_pairs) - 1:
|
|
2686
2687
|
new_kid.append(self.gen_token(Tok.COMMA))
|
|
2687
2688
|
new_kid.append(self.gen_token(Tok.RBRACE))
|
|
2688
|
-
|
|
2689
|
+
self.set_kids(nodes=new_kid)
|
|
2689
2690
|
return res
|
|
2690
2691
|
|
|
2691
2692
|
|
|
@@ -2716,7 +2717,7 @@ class KVPair(AstNode):
|
|
|
2716
2717
|
else:
|
|
2717
2718
|
new_kid.append(self.gen_token(Tok.STAR_POW))
|
|
2718
2719
|
new_kid.append(self.value)
|
|
2719
|
-
|
|
2720
|
+
self.set_kids(nodes=new_kid)
|
|
2720
2721
|
return res
|
|
2721
2722
|
|
|
2722
2723
|
|
|
@@ -2745,7 +2746,7 @@ class KWPair(AstNode):
|
|
|
2745
2746
|
new_kid.append(self.key)
|
|
2746
2747
|
new_kid.append(self.gen_token(Tok.EQ))
|
|
2747
2748
|
new_kid.append(self.value)
|
|
2748
|
-
|
|
2749
|
+
self.set_kids(nodes=new_kid)
|
|
2749
2750
|
return res
|
|
2750
2751
|
|
|
2751
2752
|
|
|
@@ -2785,7 +2786,7 @@ class InnerCompr(AstAsyncNode):
|
|
|
2785
2786
|
for cond in self.conditional if self.conditional else []:
|
|
2786
2787
|
new_kid.append(self.gen_token(Tok.KW_IF))
|
|
2787
2788
|
new_kid.append(cond)
|
|
2788
|
-
|
|
2789
|
+
self.set_kids(nodes=new_kid)
|
|
2789
2790
|
return res
|
|
2790
2791
|
|
|
2791
2792
|
|
|
@@ -2823,7 +2824,7 @@ class ListCompr(AtomExpr):
|
|
|
2823
2824
|
for comp in self.compr:
|
|
2824
2825
|
new_kid.append(comp)
|
|
2825
2826
|
new_kid.append(self.gen_token(Tok.RSQUARE))
|
|
2826
|
-
|
|
2827
|
+
self.set_kids(nodes=new_kid)
|
|
2827
2828
|
return res
|
|
2828
2829
|
|
|
2829
2830
|
|
|
@@ -2844,7 +2845,7 @@ class GenCompr(ListCompr):
|
|
|
2844
2845
|
for comp in self.compr:
|
|
2845
2846
|
new_kid.append(comp)
|
|
2846
2847
|
new_kid.append(self.gen_token(Tok.RPAREN))
|
|
2847
|
-
|
|
2848
|
+
self.set_kids(nodes=new_kid)
|
|
2848
2849
|
return res
|
|
2849
2850
|
|
|
2850
2851
|
|
|
@@ -2865,7 +2866,7 @@ class SetCompr(ListCompr):
|
|
|
2865
2866
|
for comp in self.compr:
|
|
2866
2867
|
new_kid.append(comp)
|
|
2867
2868
|
new_kid.append(self.gen_token(Tok.RBRACE))
|
|
2868
|
-
|
|
2869
|
+
self.set_kids(nodes=new_kid)
|
|
2869
2870
|
return res
|
|
2870
2871
|
|
|
2871
2872
|
|
|
@@ -2902,7 +2903,7 @@ class DictCompr(AtomExpr):
|
|
|
2902
2903
|
for comp in self.compr:
|
|
2903
2904
|
new_kid.append(comp)
|
|
2904
2905
|
new_kid.append(self.gen_token(Tok.RBRACE))
|
|
2905
|
-
|
|
2906
|
+
self.set_kids(nodes=new_kid)
|
|
2906
2907
|
return res
|
|
2907
2908
|
|
|
2908
2909
|
|
|
@@ -2916,12 +2917,14 @@ class AtomTrailer(Expr):
|
|
|
2916
2917
|
is_attr: bool,
|
|
2917
2918
|
is_null_ok: bool,
|
|
2918
2919
|
kid: Sequence[AstNode],
|
|
2920
|
+
is_genai: bool = False,
|
|
2919
2921
|
) -> None:
|
|
2920
2922
|
"""Initialize atom trailer expression node."""
|
|
2921
2923
|
self.target = target
|
|
2922
2924
|
self.right = right
|
|
2923
2925
|
self.is_attr = is_attr
|
|
2924
2926
|
self.is_null_ok = is_null_ok
|
|
2927
|
+
self.is_genai = is_genai
|
|
2925
2928
|
AstNode.__init__(self, kid=kid)
|
|
2926
2929
|
|
|
2927
2930
|
def normalize(self, deep: bool = True) -> bool:
|
|
@@ -2937,7 +2940,7 @@ class AtomTrailer(Expr):
|
|
|
2937
2940
|
new_kid.append(self.gen_token(Tok.DOT))
|
|
2938
2941
|
if self.right:
|
|
2939
2942
|
new_kid.append(self.right)
|
|
2940
|
-
|
|
2943
|
+
self.set_kids(nodes=new_kid)
|
|
2941
2944
|
return res
|
|
2942
2945
|
|
|
2943
2946
|
|
|
@@ -2962,7 +2965,7 @@ class AtomUnit(Expr):
|
|
|
2962
2965
|
new_kid.append(self.gen_token(Tok.LPAREN))
|
|
2963
2966
|
new_kid.append(self.value)
|
|
2964
2967
|
new_kid.append(self.gen_token(Tok.RPAREN))
|
|
2965
|
-
|
|
2968
|
+
self.set_kids(nodes=new_kid)
|
|
2966
2969
|
return res
|
|
2967
2970
|
|
|
2968
2971
|
|
|
@@ -2991,7 +2994,7 @@ class YieldExpr(Expr):
|
|
|
2991
2994
|
if self.expr:
|
|
2992
2995
|
new_kid.append(self.expr)
|
|
2993
2996
|
new_kid.append(self.gen_token(Tok.SEMI))
|
|
2994
|
-
|
|
2997
|
+
self.set_kids(nodes=new_kid)
|
|
2995
2998
|
return res
|
|
2996
2999
|
|
|
2997
3000
|
|
|
@@ -3002,11 +3005,13 @@ class FuncCall(Expr):
|
|
|
3002
3005
|
self,
|
|
3003
3006
|
target: Expr,
|
|
3004
3007
|
params: Optional[SubNodeList[Expr | KWPair]],
|
|
3008
|
+
genai_call: Optional[FuncCall],
|
|
3005
3009
|
kid: Sequence[AstNode],
|
|
3006
3010
|
) -> None:
|
|
3007
3011
|
"""Initialize function call expression node."""
|
|
3008
3012
|
self.target = target
|
|
3009
3013
|
self.params = params
|
|
3014
|
+
self.genai_call = genai_call
|
|
3010
3015
|
AstNode.__init__(self, kid=kid)
|
|
3011
3016
|
|
|
3012
3017
|
def normalize(self, deep: bool = True) -> bool:
|
|
@@ -3014,10 +3019,14 @@ class FuncCall(Expr):
|
|
|
3014
3019
|
if deep:
|
|
3015
3020
|
res = self.target.normalize(deep)
|
|
3016
3021
|
res = res and (not self.params or self.params.normalize(deep))
|
|
3017
|
-
|
|
3018
|
-
if self.params:
|
|
3019
|
-
|
|
3020
|
-
self.
|
|
3022
|
+
new_kids = [self.target, self.gen_token(Tok.LPAREN, "(")]
|
|
3023
|
+
if self.params:
|
|
3024
|
+
new_kids.append(self.params)
|
|
3025
|
+
if self.genai_call:
|
|
3026
|
+
new_kids.append(self.gen_token(Tok.KW_BY))
|
|
3027
|
+
new_kids.append(self.genai_call)
|
|
3028
|
+
new_kids.append(self.gen_token(Tok.RPAREN, ")"))
|
|
3029
|
+
self.set_kids(nodes=new_kids)
|
|
3021
3030
|
return res
|
|
3022
3031
|
|
|
3023
3032
|
|
|
@@ -3068,7 +3077,7 @@ class IndexSlice(AtomExpr):
|
|
|
3068
3077
|
else:
|
|
3069
3078
|
res = False
|
|
3070
3079
|
new_kid.append(self.gen_token(Tok.RSQUARE))
|
|
3071
|
-
|
|
3080
|
+
self.set_kids(nodes=new_kid)
|
|
3072
3081
|
return res
|
|
3073
3082
|
|
|
3074
3083
|
|
|
@@ -3098,7 +3107,7 @@ class ArchRef(NameSpec):
|
|
|
3098
3107
|
if deep:
|
|
3099
3108
|
res = self.name_ref.normalize(deep)
|
|
3100
3109
|
new_kid: list[AstNode] = [self.arch, self.name_ref]
|
|
3101
|
-
|
|
3110
|
+
self.set_kids(nodes=new_kid)
|
|
3102
3111
|
return res
|
|
3103
3112
|
|
|
3104
3113
|
def py_resolve_name(self) -> str:
|
|
@@ -3135,7 +3144,7 @@ class SpecialVarRef(NameSpec):
|
|
|
3135
3144
|
if deep:
|
|
3136
3145
|
res = self.var.normalize(deep)
|
|
3137
3146
|
new_kid: list[AstNode] = [self.var]
|
|
3138
|
-
|
|
3147
|
+
self.set_kids(nodes=new_kid)
|
|
3139
3148
|
return res
|
|
3140
3149
|
|
|
3141
3150
|
def py_resolve_name(self) -> str:
|
|
@@ -3181,7 +3190,7 @@ class EdgeRefTrailer(Expr):
|
|
|
3181
3190
|
new_kid.append(self.gen_token(Tok.LSQUARE))
|
|
3182
3191
|
new_kid.extend(self.chain)
|
|
3183
3192
|
new_kid.append(self.gen_token(Tok.RSQUARE))
|
|
3184
|
-
|
|
3193
|
+
self.set_kids(nodes=new_kid)
|
|
3185
3194
|
return res
|
|
3186
3195
|
|
|
3187
3196
|
|
|
@@ -3233,7 +3242,7 @@ class EdgeOpRef(WalkerStmtOnlyNode, AtomExpr):
|
|
|
3233
3242
|
new_kid.append(self.gen_token(Tok.ARROW_L_P1))
|
|
3234
3243
|
new_kid.append(self.filter_cond)
|
|
3235
3244
|
new_kid.append(self.gen_token(Tok.ARROW_R_P2))
|
|
3236
|
-
|
|
3245
|
+
self.set_kids(nodes=new_kid)
|
|
3237
3246
|
return res
|
|
3238
3247
|
|
|
3239
3248
|
|
|
@@ -3256,7 +3265,7 @@ class DisconnectOp(WalkerStmtOnlyNode):
|
|
|
3256
3265
|
if deep:
|
|
3257
3266
|
res = self.edge_spec.normalize(deep)
|
|
3258
3267
|
new_kid: list[AstNode] = [self.gen_token(Tok.KW_DELETE), self.edge_spec]
|
|
3259
|
-
|
|
3268
|
+
self.set_kids(nodes=new_kid)
|
|
3260
3269
|
return res
|
|
3261
3270
|
|
|
3262
3271
|
|
|
@@ -3316,7 +3325,7 @@ class ConnectOp(AstNode):
|
|
|
3316
3325
|
new_kid.append(self.gen_token(Tok.COLON))
|
|
3317
3326
|
new_kid.append(self.conn_assign)
|
|
3318
3327
|
new_kid.append(self.gen_token(Tok.CARROW_R_P2))
|
|
3319
|
-
|
|
3328
|
+
self.set_kids(nodes=new_kid)
|
|
3320
3329
|
return res
|
|
3321
3330
|
|
|
3322
3331
|
|
|
@@ -3360,7 +3369,7 @@ class FilterCompr(AtomExpr):
|
|
|
3360
3369
|
new_kid.append(self.compares)
|
|
3361
3370
|
if not isinstance(self.parent, EdgeOpRef):
|
|
3362
3371
|
new_kid.append(self.gen_token(Tok.RPAREN))
|
|
3363
|
-
|
|
3372
|
+
self.set_kids(nodes=new_kid)
|
|
3364
3373
|
return res
|
|
3365
3374
|
|
|
3366
3375
|
|
|
@@ -3395,7 +3404,7 @@ class AssignCompr(AtomExpr):
|
|
|
3395
3404
|
new_kid.append(self.gen_token(Tok.EQ))
|
|
3396
3405
|
new_kid.append(self.assigns)
|
|
3397
3406
|
new_kid.append(self.gen_token(Tok.RPAREN))
|
|
3398
|
-
|
|
3407
|
+
self.set_kids(nodes=new_kid)
|
|
3399
3408
|
return res
|
|
3400
3409
|
|
|
3401
3410
|
|
|
@@ -3433,7 +3442,7 @@ class MatchStmt(CodeBlockStmt):
|
|
|
3433
3442
|
new_kid.append(case)
|
|
3434
3443
|
new_kid.append(self.gen_token(Tok.RBRACE))
|
|
3435
3444
|
|
|
3436
|
-
|
|
3445
|
+
self.set_kids(nodes=new_kid)
|
|
3437
3446
|
return res
|
|
3438
3447
|
|
|
3439
3448
|
|
|
@@ -3468,7 +3477,7 @@ class MatchCase(AstNode):
|
|
|
3468
3477
|
new_kid.append(self.gen_token(Tok.COLON))
|
|
3469
3478
|
if self.body:
|
|
3470
3479
|
new_kid.extend([*self.body])
|
|
3471
|
-
|
|
3480
|
+
self.set_kids(nodes=new_kid)
|
|
3472
3481
|
return res
|
|
3473
3482
|
|
|
3474
3483
|
|
|
@@ -3495,7 +3504,7 @@ class MatchOr(MatchPattern):
|
|
|
3495
3504
|
new_kid.append(pattern)
|
|
3496
3505
|
new_kid.append(self.gen_token(Tok.KW_OR))
|
|
3497
3506
|
new_kid.pop()
|
|
3498
|
-
|
|
3507
|
+
self.set_kids(nodes=new_kid)
|
|
3499
3508
|
return res
|
|
3500
3509
|
|
|
3501
3510
|
|
|
@@ -3524,7 +3533,7 @@ class MatchAs(MatchPattern):
|
|
|
3524
3533
|
new_kid.append(self.pattern)
|
|
3525
3534
|
new_kid.append(self.gen_token(Tok.KW_AS))
|
|
3526
3535
|
new_kid.append(self.name)
|
|
3527
|
-
|
|
3536
|
+
self.set_kids(nodes=new_kid)
|
|
3528
3537
|
return res
|
|
3529
3538
|
|
|
3530
3539
|
|
|
@@ -3568,7 +3577,7 @@ class MatchValue(MatchPattern):
|
|
|
3568
3577
|
res = True
|
|
3569
3578
|
if deep:
|
|
3570
3579
|
res = self.value.normalize(deep)
|
|
3571
|
-
|
|
3580
|
+
self.set_kids(nodes=[self.value])
|
|
3572
3581
|
return res
|
|
3573
3582
|
|
|
3574
3583
|
|
|
@@ -3587,7 +3596,7 @@ class MatchSingleton(MatchPattern):
|
|
|
3587
3596
|
def normalize(self, deep: bool = False) -> bool:
|
|
3588
3597
|
"""Normalize match singleton node."""
|
|
3589
3598
|
res = True
|
|
3590
|
-
|
|
3599
|
+
self.set_kids(nodes=[self.value])
|
|
3591
3600
|
return res
|
|
3592
3601
|
|
|
3593
3602
|
|
|
@@ -3615,7 +3624,7 @@ class MatchSequence(MatchPattern):
|
|
|
3615
3624
|
new_kid.append(self.gen_token(Tok.COMMA))
|
|
3616
3625
|
new_kid.pop()
|
|
3617
3626
|
new_kid.append(self.gen_token(Tok.RSQUARE))
|
|
3618
|
-
|
|
3627
|
+
self.set_kids(nodes=new_kid)
|
|
3619
3628
|
return res
|
|
3620
3629
|
|
|
3621
3630
|
|
|
@@ -3643,7 +3652,7 @@ class MatchMapping(MatchPattern):
|
|
|
3643
3652
|
new_kid.append(self.gen_token(Tok.COMMA))
|
|
3644
3653
|
new_kid.pop()
|
|
3645
3654
|
new_kid.append(self.gen_token(Tok.RBRACE))
|
|
3646
|
-
|
|
3655
|
+
self.set_kids(nodes=new_kid)
|
|
3647
3656
|
return res
|
|
3648
3657
|
|
|
3649
3658
|
|
|
@@ -3671,7 +3680,7 @@ class MatchKVPair(MatchPattern):
|
|
|
3671
3680
|
res = res and self.value.normalize(deep)
|
|
3672
3681
|
op = Tok.EQ if isinstance(self.key, Name) else Tok.COLON
|
|
3673
3682
|
new_kid: list[AstNode] = [self.key, self.gen_token(op), self.value]
|
|
3674
|
-
|
|
3683
|
+
self.set_kids(nodes=new_kid)
|
|
3675
3684
|
return res
|
|
3676
3685
|
|
|
3677
3686
|
|
|
@@ -3698,7 +3707,7 @@ class MatchStar(MatchPattern):
|
|
|
3698
3707
|
self.gen_token(Tok.STAR_MUL if self.is_list else Tok.STAR_POW)
|
|
3699
3708
|
]
|
|
3700
3709
|
new_kid.append(self.name)
|
|
3701
|
-
|
|
3710
|
+
self.set_kids(nodes=new_kid)
|
|
3702
3711
|
return res
|
|
3703
3712
|
|
|
3704
3713
|
|
|
@@ -3735,7 +3744,7 @@ class MatchArch(MatchPattern):
|
|
|
3735
3744
|
else:
|
|
3736
3745
|
new_kid.pop()
|
|
3737
3746
|
new_kid.append(self.gen_token(Tok.RPAREN))
|
|
3738
|
-
|
|
3747
|
+
self.set_kids(nodes=new_kid)
|
|
3739
3748
|
return res
|
|
3740
3749
|
|
|
3741
3750
|
|