首页 > 解决方案 > JFlex 参数化令牌

问题描述

我想解析以下结构的表达式:

compositeKey ::= key (separator key)*

这是弹性代码片段:

KEY_CHARACTER=[^:\s]
KEY_SEPARATOR=[:]

%state WAITING_KEY

...
<WAITING_KEY> {KEY_CHARACTER}+        { yybegin(WAITING_KEY); return MyTypes.KEY; }
<WAITING_KEY> {KEY_SEPARATOR}         { yybegin(WAITING_KEY); return MyTypes.KEY_SEPARATOR; }

由给定的 flex 片段生成的代码可以正常工作,但是如果我想在“运行时”获取键分隔符怎么办?它实际上可以是用户指定的任何字符。如何用 jflex 做到这一点?

标签: jflex

解决方案


推荐阅读