comparison truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLDefineFunctionBuiltin.java @ 22251:8dddde8b20d4

Truffle/SL: provide an "unavailable" SourceSection for every RootNode, using a newly defined static name that identifies "SL Builtin" RootNodes.
author Michael Van De Vanter <michael.van.de.vanter@oracle.com>
date Thu, 24 Sep 2015 13:16:52 -0700
parents dc83cc1f94f2
children
comparison
equal deleted inserted replaced
22250:0fb3522e5b72 22251:8dddde8b20d4
43 import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; 43 import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
44 import com.oracle.truffle.api.dsl.Specialization; 44 import com.oracle.truffle.api.dsl.Specialization;
45 import com.oracle.truffle.api.nodes.NodeInfo; 45 import com.oracle.truffle.api.nodes.NodeInfo;
46 import com.oracle.truffle.api.source.Source; 46 import com.oracle.truffle.api.source.Source;
47 import com.oracle.truffle.api.source.SourceSection; 47 import com.oracle.truffle.api.source.SourceSection;
48 import com.oracle.truffle.sl.SLLanguage;
48 import com.oracle.truffle.sl.parser.Parser; 49 import com.oracle.truffle.sl.parser.Parser;
49 import com.oracle.truffle.sl.runtime.SLContext; 50 import com.oracle.truffle.sl.runtime.SLContext;
50 51
51 /** 52 /**
52 * Builtin function to define (or redefine) functions. The provided source code is parsed the same 53 * Builtin function to define (or redefine) functions. The provided source code is parsed the same
54 */ 55 */
55 @NodeInfo(shortName = "defineFunction") 56 @NodeInfo(shortName = "defineFunction")
56 public abstract class SLDefineFunctionBuiltin extends SLBuiltinNode { 57 public abstract class SLDefineFunctionBuiltin extends SLBuiltinNode {
57 58
58 public SLDefineFunctionBuiltin() { 59 public SLDefineFunctionBuiltin() {
59 super(SourceSection.createUnavailable("SL builtin", "defineFunction")); 60 super(SourceSection.createUnavailable(SLLanguage.builtinKind, "defineFunction"));
60 } 61 }
61 62
62 @Specialization 63 @Specialization
63 public String defineFunction(String code) { 64 public String defineFunction(String code) {
64 doDefineFunction(getContext(), code); 65 doDefineFunction(getContext(), code);