|
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