|
54 | 54 | import static com.oracle.graal.python.nodes.BuiltinNames.SETATTR; |
55 | 55 | import static com.oracle.graal.python.nodes.BuiltinNames.SUM; |
56 | 56 | import static com.oracle.graal.python.nodes.BuiltinNames.__BREAKPOINT__; |
| 57 | +import static com.oracle.graal.python.nodes.BuiltinNames.__BUILTIN__; |
| 58 | +import static com.oracle.graal.python.nodes.BuiltinNames.__DUMP_TRUFFLE_AST__; |
57 | 59 | import static com.oracle.graal.python.nodes.HiddenAttributes.ID_KEY; |
58 | 60 | import static com.oracle.graal.python.nodes.SpecialAttributeNames.__NAME__; |
59 | 61 | import static com.oracle.graal.python.nodes.SpecialMethodNames.__INSTANCECHECK__; |
|
91 | 93 | import com.oracle.graal.python.builtins.objects.function.PythonCallable; |
92 | 94 | import com.oracle.graal.python.builtins.objects.ints.PInt; |
93 | 95 | import com.oracle.graal.python.builtins.objects.list.PList; |
| 96 | +import com.oracle.graal.python.builtins.objects.method.PMethod; |
94 | 97 | import com.oracle.graal.python.builtins.objects.module.PythonModule; |
95 | 98 | import com.oracle.graal.python.builtins.objects.object.PythonObject; |
96 | 99 | import com.oracle.graal.python.builtins.objects.set.PFrozenSet; |
|
155 | 158 | import com.oracle.truffle.api.frame.VirtualFrame; |
156 | 159 | import com.oracle.truffle.api.nodes.ExplodeLoop; |
157 | 160 | import com.oracle.truffle.api.nodes.Node; |
| 161 | +import com.oracle.truffle.api.nodes.NodeUtil; |
158 | 162 | import com.oracle.truffle.api.nodes.NodeVisitor; |
159 | 163 | import com.oracle.truffle.api.nodes.RootNode; |
160 | 164 | import com.oracle.truffle.api.nodes.UnexpectedResultException; |
@@ -1312,7 +1316,7 @@ private Object iterateGeneric(Object iterator, Object start, ConditionProfile er |
1312 | 1316 | } |
1313 | 1317 | } |
1314 | 1318 |
|
1315 | | - @Builtin(name = "__builtin__", fixedNumOfPositionalArgs = 1) |
| 1319 | + @Builtin(name = __BUILTIN__, fixedNumOfPositionalArgs = 1) |
1316 | 1320 | @GenerateNodeFactory |
1317 | 1321 | public abstract static class BuiltinNode extends PythonUnaryBuiltinNode { |
1318 | 1322 | @Child GetItemNode getNameNode = GetItemNode.create(); |
@@ -1376,4 +1380,26 @@ public boolean visit(Node node) { |
1376 | 1380 | return factory().createBuiltinMethod(builtinModule, builtinFunc); |
1377 | 1381 | } |
1378 | 1382 | } |
| 1383 | + |
| 1384 | + @Builtin(name = __DUMP_TRUFFLE_AST__, fixedNumOfPositionalArgs = 1) |
| 1385 | + @GenerateNodeFactory |
| 1386 | + public abstract static class DumpTruffleAstNode extends PythonUnaryBuiltinNode { |
| 1387 | + @Specialization |
| 1388 | + @TruffleBoundary |
| 1389 | + public String doIt(PFunction func) { |
| 1390 | + return NodeUtil.printTreeToString(func.getCallTarget().getRootNode()); |
| 1391 | + } |
| 1392 | + |
| 1393 | + @Specialization |
| 1394 | + @TruffleBoundary |
| 1395 | + public String doIt(PMethod method) { |
| 1396 | + return NodeUtil.printTreeToString(method.getCallTarget().getRootNode()); |
| 1397 | + } |
| 1398 | + |
| 1399 | + @Fallback |
| 1400 | + @TruffleBoundary |
| 1401 | + public Object doit(Object object) { |
| 1402 | + return "truffle ast dump not supported for " + object.toString(); |
| 1403 | + } |
| 1404 | + } |
1379 | 1405 | } |
0 commit comments