75 val spans = syntax.parse_spans(text) |
75 val spans = syntax.parse_spans(text) |
76 spans.iterator.map(Command.span_files(syntax, _)._1).flatten.toList |
76 spans.iterator.map(Command.span_files(syntax, _)._1).flatten.toList |
77 } |
77 } |
78 else Nil |
78 else Nil |
79 |
79 |
80 private def dummy_name(theory: String): Document.Node.Name = |
|
81 Document.Node.Name(theory + ".thy", "", theory) |
|
82 |
|
83 def import_name(qualifier: String, master: Document.Node.Name, s: String): Document.Node.Name = |
80 def import_name(qualifier: String, master: Document.Node.Name, s: String): Document.Node.Name = |
84 { |
81 { |
85 val no_qualifier = "" // FIXME |
82 val no_qualifier = "" // FIXME |
86 val thy1 = Thy_Header.base_name(s) |
83 val thy1 = Thy_Header.base_name(s) |
87 val thy2 = if (Long_Name.is_qualified(thy1)) thy1 else Long_Name.qualify(no_qualifier, thy1) |
84 val thy2 = if (Long_Name.is_qualified(thy1)) thy1 else Long_Name.qualify(no_qualifier, thy1) |
88 (base.known_theories.get(thy1) orElse |
85 (base.known_theories.get(thy1) orElse |
89 base.known_theories.get(thy2) orElse |
86 base.known_theories.get(thy2) orElse |
90 base.known_theories.get(Long_Name.base_name(thy1))) match { |
87 base.known_theories.get(Long_Name.base_name(thy1))) match { |
91 case Some(name) if base.loaded_theory(name) => dummy_name(name.theory) |
88 case Some(name) if base.loaded_theory(name) => Document.Node.Name.theory(name.theory) |
92 case Some(name) => name |
89 case Some(name) => name |
93 case None => |
90 case None => |
94 val path = Path.explode(s) |
91 val path = Path.explode(s) |
95 val theory = path.base.implode |
92 val theory = path.base.implode |
96 if (Long_Name.is_qualified(theory)) dummy_name(theory) |
93 if (Long_Name.is_qualified(theory)) Document.Node.Name.theory(theory) |
97 else { |
94 else { |
98 val node = append(master.master_dir, thy_path(path)) |
95 val node = append(master.master_dir, thy_path(path)) |
99 val master_dir = append(master.master_dir, path.dir) |
96 val master_dir = append(master.master_dir, path.dir) |
100 Document.Node.Name(node, master_dir, Long_Name.qualify(no_qualifier, theory)) |
97 Document.Node.Name(node, master_dir, Long_Name.qualify(no_qualifier, theory)) |
101 } |
98 } |