Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么C程序的词法分析器再次生成C程序;法律yy.c“;?_C_Parsing_Flex Lexer_Lex - Fatal编程技术网

为什么C程序的词法分析器再次生成C程序;法律yy.c“;?

为什么C程序的词法分析器再次生成C程序;法律yy.c“;?,c,parsing,flex-lexer,lex,C,Parsing,Flex Lexer,Lex,我知道编译后的lex文件会生成lex.yy.c 现在假设我正在制作一个C表达式解析器。 为什么lex总是自动生成一个C文件。 使用另一个C程序解析C有什么意义?GCC的C和C++编译器大多是用C编写的。Clang的C和C++编译器是用C++编写的。我怀疑微软的C和C++编译器主要是用C和C++编写的。完全用yacc和lex编写有意义的程序几乎是不可能的。程序的大部分逻辑仍然是用“主机”语言编写的,即C或C++。但我这里的问题是语言本身是如何产生的,它是如何编写编译器的,必须有某种东西最初编译了它

我知道编译后的lex文件会生成lex.yy.c

现在假设我正在制作一个C表达式解析器。 为什么lex总是自动生成一个C文件。
使用另一个C程序解析C有什么意义?

GCC的C和C++编译器大多是用C编写的。Clang的C和C++编译器是用C++编写的。我怀疑微软的C和C++编译器主要是用C和C++编写的。完全用yacc和lex编写有意义的程序几乎是不可能的。程序的大部分逻辑仍然是用“主机”语言编写的,即C或C++。但我这里的问题是语言本身是如何产生的,它是如何编写编译器的,必须有某种东西最初编译了它并使其功能化,这样才能产生一个编译器。