{"ast_node_type":"variable","tokens":[{"end":45,"kind":"keyword","start":0,"text":"while"}]}
    while let Some(idx) = line.find(marker) {
    let marker: fn(char) -> bool = if line.contains('^') { |c| c == '^' } else { |c| c == '|' };
        offset += TextSize::try_from(idx).unwrap();