@Override protected CallTarget parse(com.oracle.truffle.api.TruffleLanguage.ParsingRequest request) throws Exception { Class<?> allTarget = getContextReference().get().findClass(request.getSource().getCharacters().toString()); return Truffle.getRuntime().createCallTarget(new RootNode(this) { @Override public Object execute(VirtualFrame frame) { return JavaInterop.asTruffleObject(allTarget); } }); }
/** * Returns the current context associated with the root node {@link #getLanguage(Class) * language} and {@link Thread thread}. The current context is <code>null</code> if the root * node is associated with a <code>null</code> language. This is a short-cut for * <code>this</code>. {@link #getLanguage(Class) getLanguage(languageClass)}. * {@link TruffleLanguage#getContextReference() getContextReference()}. * {@link ContextReference#get() get()}. If invoked on the fast-path then * <code>languageClass</code> must be a compilation final value. * * @see #getLanguage(Class) * @see TruffleLanguage#getContextReference() * @since 0.27 */ public final <C, T extends TruffleLanguage<C>> C getCurrentContext(Class<T> languageClass) { if (language == null) { return null; } return getLanguage(languageClass).getContextReference().get(); }
/** * Returns the current context associated with the root node {@link #getLanguage(Class) * language} and {@link Thread thread}. The current context is <code>null</code> if the root * node is associated with a <code>null</code> language. This is a short-cut for * <code>this</code>. {@link #getLanguage(Class) getLanguage(languageClass)}. * {@link TruffleLanguage#getContextReference() getContextReference()}. * {@link ContextReference#get() get()}. If invoked on the fast-path then * <code>languageClass</code> must be a compilation final value. * * @see #getLanguage(Class) * @see TruffleLanguage#getContextReference() * @since 0.27 */ public final <C, T extends TruffleLanguage<C>> C getCurrentContext(Class<T> languageClass) { if (languageInfo == null) { return null; } return getLanguage(languageClass).getContextReference().get(); }
@Override public Object execute(VirtualFrame frame) { Env env = getLanguage(TckLanguage.class).getContextReference().get(); Object[] arguments = frame.getArguments(); return parseAndEval(env, arguments); }
@Override public Object execute(VirtualFrame frame) { HostContext context = getContextReference().get(); Class<?> allTarget = context.findClass(sourceString); return context.internalContext.toGuestValue(allTarget); } });
@Override public Object execute(VirtualFrame frame) { Env env = getLanguage(TckLanguage.class).getContextReference().get(); Object[] arguments = frame.getArguments(); return parseAndEval(env, arguments); }