【问题标题】:Lex/Flex - Scanning for the EOF characterLex/Flex - 扫描 EOF 字符
【发布时间】:2011-09-30 16:27:41
【问题描述】:

其他人遇到了我遇到的以下问题,但我找不到任何人报告了解决方案.. 让 Flex 发现 EOF(文件结尾)。我需要 Flex 来查找 EOF 并返回一个指示它已找到它的令牌,以便它可以告诉 Yacc/Bison 它已到达输入源文件的末尾并可以报告成功解析。

请注意,this question 与此不同,因为这是关于 Lex/Flex。

任何帮助都会很棒。谢谢。

【问题讨论】:

  • 这里有问题。您通常不需要这样做。只需在你的语法中写一个目标符号,就可以了。
  • @EJP:你能举个小例子吗?我是 Flex/Bison 的新手。如何实现这一点作为一个简单的语法规则?谢谢你
  • @EJP,当从真实键盘输入时,将 Ctrl-Z 传递给程序,导致语法错误。我无法使用 /x1a 之类的东西来捕捉它,但 > 有效。

标签: bison yacc lex flex-lexer


【解决方案1】:

Flex 有 <<EOF>> 仅匹配文件结尾的模式。 可能您可以将一些指示文件结束的标记返回给解析器 如下。

<<EOF>>     return END_OF_FILE;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多