【问题标题】:What is .I extension used for?.I 扩展名是做什么用的?
【发布时间】:2016-05-20 04:40:12
【问题描述】:

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

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

谢谢

【问题讨论】:

  • 你确定它是.I 而不是.l(在许多无衬线字体中看起来非常相似,但第一个是大写的 i,第二个是小写的 L)。 .l 文件由 Lex 或 Flex 使用——它包含词法分析器的源代码。
  • 来自引用的 URL:Listing of tokens.l:。是的,它是小写L

标签: c++ file-format


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 这应该是一条评论
    【解决方案3】:

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

    编程语言的编译器或解释器通常分为两部分:

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

    再次发现源结构的任务被分解为子任务:

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

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

    【讨论】:

      【解决方案4】:

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

      引用:

      I 是 Borland C++ 使用的中间预处理器输出文件格式。 I 文件用于在编译器的解析器之间编译和通信二进制标记流。 I 文件也可用于编写文本输出。

      【讨论】:

        猜你喜欢
        • 2017-06-03
        • 2015-08-17
        • 2019-11-04
        • 2020-03-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-05-06
        相关资源
        最近更新 更多