[求助]lex and yacc(2) 例子ch2-03运行不了

发布于 2022-09-19 12:36:34 字数 91 浏览 13 评论 0

新手,从网上down下来lex and yacc second 第二版例子
ch2-03,无法运行多文件单词计数程序。我是在redhat 9中试的,有没有哪位碰到过,谢谢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

又怨 2022-09-26 12:36:34

我想你在问问题的时候,最好应该把代码附上.
然后给出你运行的例子,包括你是如何编译的.
像这样

  1. $ echo Hello,world!
  2. Hello,world!

复制代码

栩栩如生 2022-09-26 12:36:34

谢谢提醒,我考虑代码比较长一点,就没有贴上来

经过调试,确定是作者的代码有误

yywrap()
{

        FILE *file;  此处没有初始化为null,导致后面一直返回0,死循环了
        if ((currentFile != 0) && (nFiles > 1) && (currentFile < nFiles)) {
                /*
                 * we print out the statistics for the previous file.
                 */
                printf("%8lu %8lu %8lu %s\n", lineCount, wordCount,
                        charCount, fileList[currentFile-1]);
                totalCC += charCount;
                totalWC += wordCount;
                totalLC += lineCount;
                charCount = wordCount = lineCount = 0;
                fclose(yyin);   /* done with that file */
        }

        while (fileList[currentFile] != (char *)0) {
                file = fopen(fileList[currentFile++], "r");
                if (file != NULL) {
                        yyin = file;
                        break;
                }
                fprintf(stderr,
                        "could not open %s\n",
                        fileList[currentFile-1]);
        }
        return (file ? 0 : 1);  /* 0 means there's more input */

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文