gpt4 book ai didi

parsing - Lex/Flex 中的开始状态

转载 作者:行者123 更新时间:2023-12-04 13:55:56 25 4
gpt4 key购买 nike

我正在使用 Flex 和 Bison 作为解析器生成器,但在我的扫描仪中的启动状态有问题。

我正在使用排他性规则来处理评论,但此语法似乎与引用的标记不匹配:

%x COMMENT

// { BEGIN(COMMENT); }
<COMMENT>[^\n] ;
<COMMENT>\n { BEGIN(INITIAL); }

"==" { return EQUALEQUAL; }

. ;

在这个简单的例子中,这一行:
// a == b

不完全匹配作为注释,除非我包含此规则:
<COMMENT>"=="             ;

我如何解决这个问题而不必将所有这些代币添加到我的专属规则中?

最佳答案

在 Lex/Flex 或任何有据可查的文件中匹配 C 风格的注释:

in the documentation ,以及 Internet 上的各种变体。

以下是 Flex 文档中的一个变体:

   <INITIAL>{
"//" BEGIN(IN_COMMENT);
}
<IN_COMMENT>{
\n BEGIN(INITIAL);
[^\n]+ // eat comment
"/" // eat the lone /
}

关于parsing - Lex/Flex 中的开始状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1130597/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com