Skip to main content

parse_string_segments

Function parse_string_segments 

Source
pub fn parse_string_segments(
    content: &str,
    span_start: usize,
    is_raw: bool,
) -> Vec<StringSegment>
Expand description

解析字符串内容为片段列表。

该函数处理以下功能:

  • 插值解析:解析 {expr} 格式的插值表达式
  • 转义处理:处理 \{\} 转义序列
  • Fluent 标记:识别 ߷ (Gwot, U+07DF) 符号标记的 Fluent 变量
  • Raw String 处理:前缀为 r 时不解析插值

§参数

  • content - 字符串内容(不含引号)
  • span_start - 内容在源码中的起始位置
  • is_raw - 是否为 raw string(raw string 不解析插值)

§返回

返回解析后的字符串片段列表

§示例

use oak_valkyrie::parser::parse_string_segments;

// 普通文本
let segments = parse_string_segments("hello", 0, false);
assert_eq!(segments.len(), 1);

// 插值表达式
let segments = parse_string_segments("hello {name}!", 0, false);
assert_eq!(segments.len(), 3);

// Raw string 不解析插值
let segments = parse_string_segments("hello {name}!", 0, true);
assert_eq!(segments.len(), 1);