Mercurial > hg > truffle
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); |