lexer规则,“除了”之外的多字符串

时间:2013-02-12 22:43:18

标签: lex

在flex中,如何定义词法分析器规则,例如$$之外的任何规则。对于单个字符,它定义为:

[^\$]

对于$$,它是否等于[^\$\$]

1 个答案:

答案 0 :(得分:1)

您的单个​​字符是正确的,现在只需加倍:[^\$][^\$]。这将接受任何两个不是'$'的字符。如果你想允许一个'$',那么你需要提供它作为替代:[^\$][^\$]|\$[^\$]|[^\$]\$

最终无论如何最终会成为DFA,所以没有效率问题。如果您需要多次执行此操作,请为模式指定一个名称,这样您只需要使用一次。