【问题标题】:Compiler: is implicit type conversion considered in parsing or semantic analysis?编译器:在解析或语义分析中是否考虑了隐式类型转换?
【发布时间】:2018-08-12 04:31:09
【问题描述】:

在我的理解中隐式转换是在语义分析中完成的,但是clang AST命令clang -Xclang -ast-dump -fsyntax-only file.cpp会在AST中产生类型转换信息,比如这两个:

...
`- ImplicitCastExpr 0x7fdc27050558 <14>


<19>

    标签: parsing compilation compiler-construction clang semantic-analysis


    【解决方案1】:

    隐式类型转换通常发生在编译器的语义分析(更具体地说是类型检查)中,但有些可能发生在解析中以制作更简单的 AST(直接将文字转换为其值等等)。

    如果您专门查看您使用的命令选项,我们会发现它意味着

    -fsyntax-only 运行预处理器、解析器和类型检查阶段。

    https://clang.llvm.org/docs/CommandGuide/clang.html

    所以我们看到我们期望输出类型信息(需要隐式转换)。

    注意:我可能不清楚,但类型检查只是语义分析的一个阶段。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-01
      • 1970-01-01
      • 2016-06-28
      • 1970-01-01
      • 2018-05-22
      • 1970-01-01
      • 2018-09-30
      • 1970-01-01
      相关资源
      最近更新 更多