src/Pure/Thy/sessions.scala
changeset 66717 67dbf5cdc056
parent 66716 8737b866bd1c
child 66718 514c4907ff0b
--- a/src/Pure/Thy/sessions.scala	Fri Sep 29 17:41:39 2017 +0200
+++ b/src/Pure/Thy/sessions.scala	Fri Sep 29 20:49:42 2017 +0200
@@ -114,7 +114,7 @@
   sealed case class Base(
     pos: Position.T = Position.none,
     global_theories: Map[String, String] = Map.empty,
-    loaded_theories: Set[String] = Set.empty,
+    loaded_theories: Graph[String, Outer_Syntax] = Graph.string,
     known: Known = Known.empty,
     keywords: Thy_Header.Keywords = Nil,
     syntax: Outer_Syntax = Outer_Syntax.empty,
@@ -126,9 +126,14 @@
     def platform_path: Base = copy(known = known.platform_path)
     def standard_path: Base = copy(known = known.standard_path)
 
-    def loaded_theory(name: String): Boolean = loaded_theories.contains(name)
+    def loaded_theory(name: String): Boolean = loaded_theories.defined(name)
     def loaded_theory(name: Document.Node.Name): Boolean = loaded_theory(name.theory)
 
+    def loaded_theory_syntax(name: String): Option[Outer_Syntax] =
+      if (loaded_theory(name)) Some(loaded_theories.get_node(name)) else None
+    def loaded_theory_syntax(name: Document.Node.Name): Option[Outer_Syntax] =
+      loaded_theory_syntax(name.theory)
+
     def known_theory(name: String): Option[Document.Node.Name] =
       known.theories.get(name)