命令式语言与Micro - C编译
1. 命令式语言练习
1.1 扩展Micro - C词法分析器和解析器
需要扩展Micro - C的词法分析器和解析器,以接受C/C++/Java/C#风格的条件表达式 e1 ? e2 : e3 。其抽象语法可以表示为 Cond(e1, e2, e3) ,同时需要修改 Absyn.fs 文件。
1.2 接受范围条件
大多数编程语言(包括Micro - C)通常不允许如数学中常见的范围条件,如 1 <= x < 365 。需要修改Micro - C解析器以接受此类范围条件。在此之前,需要确定接受的表达式类型,例如是否接受 z < x > y 以及其含义,并为这些表达式生成合适的抽象语法。这一过程可能存在一些陷阱,需要谨慎处理。
1.3 解释C类型声明
使用Micro - C的部分抽象语法、词法分析器和解析器,编写一个F#程序,以类似旧Unix实用工具 cdecl 的风格解释C类型声明。例如:
cdecl> explain int *arr[10]
declare arr as array 10 of pointer to int
cdecl> explain int (*arr)[10]
declare arr as pointer to array 10 of int
超级会员免费看
订阅专栏 解锁全文

403

被折叠的 条评论
为什么被折叠?



