Mercurial > hg > graal-compiler
diff graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/runtime/SLContext.java @ 13761:7c418666c6c9
Refactoring and cleanup of Simple Language (more to come soon)
author | Christian Wimmer <christian.wimmer@oracle.com> |
---|---|
date | Fri, 24 Jan 2014 18:16:24 -0800 |
parents | 69d2e4baa215 |
children | b16ec83edc73 |
line wrap: on
line diff
--- a/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/runtime/SLContext.java Fri Jan 24 18:13:38 2014 -0800 +++ b/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/runtime/SLContext.java Fri Jan 24 18:16:24 2014 -0800 @@ -24,32 +24,43 @@ import java.io.*; +import com.oracle.truffle.api.dsl.*; import com.oracle.truffle.api.source.*; import com.oracle.truffle.sl.builtins.*; +import com.oracle.truffle.sl.nodes.*; public final class SLContext { - - private final PrintStream printOutput; + private final SourceManager sourceManager; + private final PrintStream output; private final SLFunctionRegistry functionRegistry; - private final SourceManager sourceManager; - public SLContext(PrintStream print) { - this.printOutput = print; + public SLContext(SourceManager sourceManager, PrintStream output) { + this.sourceManager = sourceManager; + this.output = output; this.functionRegistry = new SLFunctionRegistry(); - DefaultBuiltins.install(this); - this.sourceManager = new SourceManager(); + + installBuiltins(); + } + + public SourceManager getSourceManager() { + return sourceManager; } public PrintStream getPrintOutput() { - return printOutput; + return output; } public SLFunctionRegistry getFunctionRegistry() { return functionRegistry; } - public SourceManager getSourceManager() { - return sourceManager; + private void installBuiltins() { + installBuiltin(SLPrintBuiltinFactory.getInstance(), "print"); + installBuiltin(SLTimeBuiltinFactory.getInstance(), "time"); + installBuiltin(SLDefineFunctionBuiltinFactory.getInstance(), "defineFunction"); } + private void installBuiltin(NodeFactory<? extends SLBuiltinNode> factory, String name) { + getFunctionRegistry().register(name, SLRootNode.createBuiltin(this, factory, name)); + } }