识别图书馆的新类型

时间:2012-01-08 19:30:10

标签: java compiler-construction

我正在编写Java语言子集的编译器,在编写扫描程序时,我想知道如何识别非原始类型但来自库的类型。例如,String类型在Java语言中不是原始的。一般来说,如何在不事先了解的情况下将图书馆中的新类型识别为语言中的“关键字”。谢谢!

1 个答案:

答案 0 :(得分:4)

尝试完成http://www.antlr.org/grammar/1152141644268/Java.g(注意type声明及其用法) - 它会为您提供一些见解。

简而言之,当您解析源代码时,您知道您希望在哪里看到类型,无论是在字段和方法中的修饰符之后,在形式参数列表中的参数名称之前,等等。当您知道{{1是某种类型,您可以使用String表检查以获取全名,然后在类路径中找到实际的类。

现在,正如Bart在评论中提到的那样(现已删除),真正的解决方案会在管道中稍后发生。在解析阶段,您只创建一个节点,表明您的importtype,其中 Identifier所以此时此答案将是是的,“你没有。”

更新:尝试关注this thesis,它可以帮助您。