Skip to content

Latest commit

 

History

History
45 lines (30 loc) · 829 Bytes

part2_task.md

File metadata and controls

45 lines (30 loc) · 829 Bytes

Part 2 消除注释

任务

miniSysY 语言中有两种注释,包括以 // 开头的单行注释和包裹在 /**/ 中的多行注释。

  • 单行注释:以 // 开始,直到换行符结束,不包括换行符。
  • 多行注释:以 /* 开始,直到第一次出现 */ 时结束,包括 */

在 Part 2 中,你需要识别出程序中包含的注释,并在编译过程中跳过这些注释。

思考题

  • 你的编译器是怎样消除代码中的注释的?请简要说明。

示例

输入样例 1:

int main() { // mian
    return /* 123 */ 234;
}

输出样例 1:

define dso_local i32 @main(){
    ret i32 234
}

输入样例 2:

int main() {
    /*
    return 123;
}

输出样例 2:

编译器直接以非 0 的返回值退出。