Flex中同名的多个定义

时间:2012-06-26 22:56:50

标签: flex-lexer

我是Flex新手,并且想知道在Flex中是否可以为同一个名称设置多个定义。如:

/* DEFINITIONS */
FRUITS "APPLE" | "ORANGE" | "LEMON"

另外,我们可以做什么而不用flex的正则表达式中的字符串常量?我们可以使用$和*等符号吗?谢谢!

1 个答案:

答案 0 :(得分:1)

定义的右侧是普通的正则表达式,因此您可以编写

FRUIT APPLE|ORANGE|LEMON

或者

FRUIT (PINE)?APPLE|GRAPE(FRUIT)?|ORANGE|LEMON

稍后在规则部分中使用

引用它
{FRUIT} 

但我怀疑你真的想要。这是识别关键字令牌的粗略方式。

最好使用定义(将它们视为宏),如下例所示:

LETTER [a-zA-Z]
DIGIT [0-9]
ALPHANUMERIC [a-zA-Z0-9]