161 jar_files: List[JFile] = Nil, |
161 jar_files: List[JFile] = Nil, |
162 class_loader: Option[ClassLoader] = None |
162 class_loader: Option[ClassLoader] = None |
163 ): Context = { |
163 ): Context = { |
164 val isabelle_settings = |
164 val isabelle_settings = |
165 Word.explode(Isabelle_System.getenv_strict("ISABELLE_SCALAC_OPTIONS")) |
165 Word.explode(Isabelle_System.getenv_strict("ISABELLE_SCALAC_OPTIONS")) |
166 |
166 val classpath = Classpath(jar_files = jar_files) |
167 val classpath = Classpath(jar_files = jar_files).platform_path |
167 new Context(isabelle_settings ::: settings, classpath, class_loader) |
168 val settings1 = isabelle_settings ::: settings ::: List("-classpath", classpath) |
|
169 new Context(settings1, class_loader) |
|
170 } |
168 } |
171 |
169 |
172 class Context private [Compiler]( |
170 class Context private [Compiler]( |
173 val settings: List[String], |
171 _settings: List[String], |
|
172 val classpath: Classpath, |
174 val class_loader: Option[ClassLoader] = None |
173 val class_loader: Option[ClassLoader] = None |
175 ) { |
174 ) { |
|
175 def settings: List[String] = |
|
176 _settings ::: List("-classpath", classpath.platform_path) |
|
177 |
176 private val out_stream = new ByteArrayOutputStream(1024) |
178 private val out_stream = new ByteArrayOutputStream(1024) |
177 private val out = new PrintStream(out_stream) |
179 private val out = new PrintStream(out_stream) |
178 private val driver: ReplDriver = new ReplDriver(settings.toArray, out, class_loader) |
180 private val driver: ReplDriver = new ReplDriver(settings.toArray, out, class_loader) |
179 |
181 |
180 def init_state: repl.State = driver.initialState |
182 def init_state: repl.State = driver.initialState |