built-in data type
A markup-region-event triggers a rule when encountered by do markup-parse in a
markup source. It is a markup-event that includes content; the most common example is
an element with data content. A markup-region-event can be signalled as an argument of a pair of
catch labels:
A markup region always starts with a #markup-start signal, and ends with a
#markup-end signal. The markup-region-event argument of a pair of signals must be
reference-equal. All data between the #markup-start and
#markup-end signals is the markup region's content.
markup-region-event is an abstract type; its subtypes are used in specific contexts. For example,
markup-element-event, and
markup-comment-event.
If a rule is fired from a markup region (using do markup-parse) the
markup-region-event will be available from the rule as #current-markup-event, and the
region's content as #content.
Function wrap-content produces a new markup source from the markup source argument
region-content and the markup-region-event argument region-boundary. The two
arguments are combined into a new markup region, where region-content forms its content.
define markup source function wrap-content value markup source region-content in-region value markup-region-event region-boundary as signal throw #markup-start region-boundary output region-content signal throw #markup-end region-boundary ; This process rule prepares a markup-region-event for wrapping content. global markup-region-event root-element process using group "capture root element" do xml-parse scan "<wrapper/>" suppress done ; This process rule demonstrates a use of wrap-content process do xml-parse scan #main-input using group "process wrapped document" do markup-parse wrap-content #content in-region root-element output "%c" done done group "capture root element" element #implied set root-element to #current-markup-event suppress group "process wrapped document" element #implied output "<%q>%c></%q>%n"