729 elements: Elements, |
729 elements: Elements, |
730 result: List[Command.State] => (A, Text.Markup) => Option[A], |
730 result: List[Command.State] => (A, Text.Markup) => Option[A], |
731 status: Boolean = false): List[Text.Info[A]] = |
731 status: Boolean = false): List[Text.Info[A]] = |
732 { |
732 { |
733 val former_range = revert(range) |
733 val former_range = revert(range) |
734 val (file_name, command_iterator) = |
734 val (chunk_name, command_iterator) = |
735 load_commands match { |
735 load_commands match { |
736 case command :: _ => (node_name.node, Iterator((command, 0))) |
736 case command :: _ => (Command.Chunk.File_Name(node_name.node), Iterator((command, 0))) |
737 case _ => ("", node.command_iterator(former_range)) |
737 case _ => (Command.Chunk.Self, node.command_iterator(former_range)) |
738 } |
738 } |
739 val markup_index = Command.Markup_Index(status, file_name) |
739 val markup_index = Command.Markup_Index(status, chunk_name) |
740 (for { |
740 (for { |
741 (command, command_start) <- command_iterator |
741 (command, command_start) <- command_iterator |
742 chunk <- command.chunks.get(file_name).iterator |
742 chunk <- command.chunks.get(chunk_name).iterator |
743 states = state.command_states(version, command) |
743 states = state.command_states(version, command) |
744 res = result(states) |
744 res = result(states) |
745 range = (former_range - command_start).restrict(chunk.range) |
745 range = (former_range - command_start).restrict(chunk.range) |
746 markup = Command.State.merge_markup(states, markup_index, range, elements) |
746 markup = Command.State.merge_markup(states, markup_index, range, elements) |
747 Text.Info(r0, a) <- markup.cumulate[A](range, info, elements, |
747 Text.Info(r0, a) <- markup.cumulate[A](range, info, elements, |