简而言之:
我正在尝试为教育目的实现Ada语言前端的子集,但我陷入了基本的OOP AST构建。
详细信息:
我想构建一个Ada语言前端的子集,以便与LLVM系统一起使用。我的目的仅仅是出于教育目的,而不是用于功能齐全,高度优化的编译器系统。
我的词法分析器/解析器是使用Flex / Bison构建的,我已经有一个语法(基于Ada RM)来解析一些代码。现在我想为这个语法构建一个抽象语法树,最后编写IR代码以传递给LLVM系统。 (我的问题与编写flex / bison规则和定义我的语法无关,我知道如何去做。)
我已经知道如何处理算术表达式和函数声明,定义和调用,但是我找不到有关OOP处理的AST结构的有用信息。
我的问题是:
我有一个关于如何处理泛型的更高级的问题。我不知道他们是如何申报和使用的,有什么建议吗?
提前致谢!