vxml_pipeline/desugarers/writerly_handles_generate_v_definitions_from_t_definitions

Values

pub fn constructor() -> core.Desugarer

Scans every text node (T) for in-text handle definitions of the form

BOUNDARY handleName[#decorator…]##<>## ##handleName[#decorator…]##<>##

The boundary form is recognized at the start of a line, after a space, ‘{’, ‘(’ or ‘[’, or immediately after a consumed value closer. The explicit ‘##’ form can occur anywhere. Handle names and decorators use the Writerly extension’s Unicode-aware grammar. VALUE is the single-line content up to the first unescaped ‘>>##’. Odd/even backslash parity controls closer escaping, and escape backslashes are removed. An active closer is consumed eagerly; its final ‘##’ is not reused as an explicit opener. If no closer exists, the value is empty and scanning restarts immediately after ‘##<<’. The same rules apply inside Writerly code blocks.

For each match found, the desugarer:

  1. Replaces the matched span with just BOUNDARY + VALUE in the text. The explicit ‘##’ opener is removed.
  2. Adds a ‘handle=handleName <>’ attribute to the closest ancestor V node of the T node. Every decorator is copied after the handle name; this desugarer does not interpret decorator semantics.

If ‘##<<’ is found but what precedes it does not form a valid handle-name pattern (or has no valid preceding char), that occurrence is left untouched with no error or warning.

Any backslash between the name or decorators and ‘##<<’ breaks the required adjacency, so the text is preserved.

Intended to run before writerly_handles_add_ids so that generated definitions receive ids with other handle-bearing elements.

pub const name: String
Search Document