gpt4 book ai didi

c - Lex - 如何在命令行上运行/编译 lex 程序

转载 作者:太空狗 更新时间:2023-10-29 17:15:57 28 4
gpt4 key购买 nike

我对 Lex 和 Yacc 很陌生。我有一个 Lex 程序。示例:wordcount.l

我正在使用 windows 和 putty。

我只是想运行这个文件..

  1. wordcount.l文件是否放在C盘?

  2. 我是否编译 Lex 程序并生成一个 .c 程序,然后运行什么?

我在命令行上试过:Lex wordcount.l

但我只是找不到文件...

wordcount.l

%{  
#include <stdlib.h>
#include <stdio.h>

int charCount=0;
int wordCount=0;
int lineCount=0;
%}
%%
\n {charCount++; lineCount++;}
[^ \t\n]+ {wordCount++; charCount+=yyleng;}
. {charCount++;}

%%
main(argc, argv)
int argc;
char** argv;
{
if (argc > 1)
{
FILE *file;
file = fopen(argv[1], "r");
if (!file)
{
fprintf(stderr, "Could not open %s\n", argv[1]);
exit(1);
}
yyin = file;
}

yylex();
printf("%d %d %d\n", charCount, wordCount, lineCount);
}

在putty中如何编译运行这个程序?

最佳答案

您首先必须使用cd 进入文件wordcount.l 所在的目录。然后使用 lex wordcount.l 将生成文件 lex.yy.c。要运行该程序,您需要使用 c 编译器(例如 gcc)对其进行编译。使用 gcc,您可以使用 gcc -lfl lex.yy.c 编译它。这将创建可以使用 ./a.out

运行的 a.out

关于c - Lex - 如何在命令行上运行/编译 lex 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8859710/

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