繁体   English   中英

从库中识别新类型

[英]Recognizing new types from a library

我正在为Java语言的子集编写一个编译器,在编写扫描器时,我想知道如何识别不是原始的但来自库的类型。 例如,字符串类型不是Java语言中的原始类型。 通常,我如何在不事先了解它们的情况下将库中的新类型识别为该语言中的“关键字”。 谢谢!

尝试浏览http://www.antlr.org/grammar/1152141644268/Java.g (注意type声明及其用法),它将为您提供一些见识。

简而言之,当您解析源代码时,您知道要在哪里看到类型,它是在字段和方法中的修饰符之后,还是在正式参数列表中的参数名称之前,等等。当您知道String是某种类型时,您可以可以检查import表以获得全名,然后在类路径中找到实际的类。

现在,正如Bart在评论中提到的那样(现在已删除),真正的解决方案将在稍后的版本中进行。 在解析阶段,您仅创建一个节点,表明您具有typeIdentifierString 因此,此时的答案是“您不知道”。

更新:尝试遵循本文 ,它会为您提供帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM