393 : T[Document.Node.Edit[Command.Edit, Command.Perspective]] = |
393 : T[Document.Node.Edit[Command.Edit, Command.Perspective]] = |
394 variant(List( |
394 variant(List( |
395 { case Document.Node.Edits(a) => (Nil, list(pair(option(id), option(id)))(a)) }, |
395 { case Document.Node.Edits(a) => (Nil, list(pair(option(id), option(id)))(a)) }, |
396 { case Document.Node.Deps(header) => |
396 { case Document.Node.Deps(header) => |
397 val master_dir = Isabelle_System.posix_path_url(name.master_dir) |
397 val master_dir = Isabelle_System.posix_path_url(name.master_dir) |
|
398 val theory = Long_Name.base_name(name.theory) |
398 val imports = header.imports.map(_.node) |
399 val imports = header.imports.map(_.node) |
399 val keywords = header.keywords.map({ case (a, b, _) => (a, b) }) |
400 val keywords = header.keywords.map({ case (a, b, _) => (a, b) }) |
400 (Nil, |
401 (Nil, |
401 pair(Encode.string, pair(Encode.string, pair(list(Encode.string), |
402 pair(Encode.string, pair(Encode.string, pair(list(Encode.string), |
402 pair(list(pair(Encode.string, |
403 pair(list(pair(Encode.string, |
403 option(pair(pair(Encode.string, list(Encode.string)), list(Encode.string))))), |
404 option(pair(pair(Encode.string, list(Encode.string)), list(Encode.string))))), |
404 list(Encode.string)))))( |
405 list(Encode.string)))))( |
405 (master_dir, (name.theory, (imports, (keywords, header.errors)))))) }, |
406 (master_dir, (theory, (imports, (keywords, header.errors)))))) }, |
406 { case Document.Node.Perspective(a, b, c) => |
407 { case Document.Node.Perspective(a, b, c) => |
407 (bool_atom(a) :: b.commands.map(cmd => long_atom(cmd.id)), |
408 (bool_atom(a) :: b.commands.map(cmd => long_atom(cmd.id)), |
408 list(pair(id, pair(Encode.string, list(Encode.string))))(c.dest)) })) |
409 list(pair(id, pair(Encode.string, list(Encode.string))))(c.dest)) })) |
409 def encode_edits: T[List[Document.Edit_Command]] = list((node_edit: Document.Edit_Command) => |
410 def encode_edits: T[List[Document.Edit_Command]] = list((node_edit: Document.Edit_Command) => |
410 { |
411 { |