.I 扩展名是做什么用的?

What is .I extension used for?

我正在按照 this 教程学习如何在 C++ 中创建编译器。但是在教程中作者创建了 tokens.I 文件用于词法分析。

谁能告诉我什么是 .I 用于 ??

的扩展名

谢谢

http://whatis.techtarget.com/fileformat/I-Intermediate-file-Borland-C

引用:

I is an intermediate preprocessor output file format used by Borland C++. I files are used to compile and communicate a stream of binary tokens between the compiler’s parsers. I files can also be used to compose textual outputs.

C 预处理器和 C 编译器之间的中间文件。所有的宏都在这里展开。

扩展名实际上是.l(小写L),用于"lex"文件。

这里是编译器的一些基础知识,引用自http://dinosaur.compilertools.net/:

A compiler or interptreter for a programminning language is often decomposed into two parts:

1. Read the source program and discover its structure.
2. Process this structure, e.g. to generate the target program.

The task of discovering the source structure again is decomposed into subtasks:

 a. Split the source file into tokens
 b. Find the hierarchical structure of the program

还有很多工具可以为您完成任务 a,例如 LexFlexRe2c。所以基本上你可以根据工具的语法在.l文件中定义一些令牌解析规则(使用正则表达式),然后将它传递给那些工具,让他们为你做令牌解析。