You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在特定词法分析模式中复用词法规则?

格式化字符串解析中的模式复用问题

我需要解析格式化字符串,比如:

f"1 + 1 = {1+1}"

当识别到f"时,要进入新的模式formatted_string_mode,遇到"时退出该模式,对应规则如下:

'f"' -> pushMode(formatted_string_mode);

mode formatted_string_mode;
'"' -> popMode;

同时,我还需要处理{}内部的格式化表达式。让我困惑的是,如何在特定模式中复用其他模式(或默认模式)的词法规则?

比如我可以设计另一个模式formatted_expr_mode,在formatted_string_mode中遇到{时进入该模式:

// ... 假设我已有一些用于解析表达式的规则
'f"' -> pushMode(formatted_string_mode);

mode formatted_string_mode;
'"' -> popMode;
'{' -> pushMode(formatted_expr_mode);
STRING_SEGMENT: ~["{] ;

mode formatted_expr_mode;
'}' -> popMode;
// 如何在此处复用默认模式的现有规则?

内容的提问来源于stack exchange,提问作者D Asp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 18:33:09