Handbook
Glossary
adoption-inner-loop ( document formatting block -- last-node bookmark )
Vocabulary
html5
Inputs
document
an
object
formatting
an
object
block
an
object
Outputs
last-node
an
object
bookmark
an
object
Definition
USING:
accessors
kernel
math
sequences
;
IN:
html5
::
adoption-inner-loop
( document formatting block -- last-node bookmark )
document
active-formatting-elements>>
:>
entries document
open-elements>>
:>
stack formatting entries
node-index
:>
bookmark! block stack
node-index
:>
cursor! block
:>
last-node! 0
:>
count!
f
:>
done!
[
done
not
]
[
cursor 1
-
cursor! cursor stack
nth
:>
node node formatting
eq?
[
t
done!
]
[
count 1
+
count! node entries
node-index
:>
entry-index! count 3
>
entry-index
f
=
not
and
[
entry-index bookmark
<
[
bookmark 1
-
bookmark!
]
when
node entries
remove-node
f
entry-index!
]
when
entry-index
[
drop
node
clone-formatting-element
:>
replacement
replacement entry-index entries
set-nth
replacement cursor stack
set-nth
last-node block
eq?
[
entry-index 1
+
bookmark!
]
when
last-node
detach-node
last-node replacement
attach-node
replacement last-node!
]
[
node stack
remove-node
]
if*
]
if
]
while
last-node bookmark
;