equal
deleted
inserted
replaced
27 |
27 |
28 val class_loader = new URLClassLoader(Array(), getClass.getClassLoader) |
28 val class_loader = new URLClassLoader(Array(), getClass.getClassLoader) |
29 val tool_box = universe.runtimeMirror(class_loader).mkToolBox() |
29 val tool_box = universe.runtimeMirror(class_loader).mkToolBox() |
30 |
30 |
31 try { |
31 try { |
32 val symbol = tool_box.parse(source) match { |
32 val tree = tool_box.parse(source) |
33 case tree: universe.ModuleDef => tool_box.define(tree) |
33 val module = |
34 case _ => err("Source does not describe a module (Scala object)") |
34 try { tree.asInstanceOf[universe.ModuleDef] } |
35 } |
35 catch { |
36 tool_box.compile(universe.Ident(symbol))() match { |
36 case _: java.lang.ClassCastException => |
|
37 err("Source does not describe a module (Scala object)") |
|
38 } |
|
39 tool_box.compile(universe.Ident(tool_box.define(module)))() match { |
37 case body: Body => body |
40 case body: Body => body |
38 case _ => err("Ill-typed source: Isabelle_Tool.Body expected") |
41 case _ => err("Ill-typed source: Isabelle_Tool.Body expected") |
39 } |
42 } |
40 } |
43 } |
41 catch { |
44 catch { |