Compiler.java
package org.sterling.runtime;
import java.util.Set;
import org.sterling.SterlingException;
import org.sterling.runtime.expression.DeclaredExpression;
import org.sterling.source.parser.Parser;
import org.sterling.source.scanner.InputReader;
import org.sterling.source.scanner.ScannerFactory;
import org.sterling.source.translator.Translator;
public class Compiler {
private final ScannerFactory factory;
private final Translator translator;
private final Parser parser;
public Compiler() {
this.factory = new ScannerFactory();
this.translator = new Translator();
this.parser = new Parser();
}
public Set<DeclaredExpression> compile(InputReader inputReader, GlobalModule globalModule) throws SterlingException {
return translator.translate(parser.parse(factory.getScanner(inputReader)), globalModule);
}
}