2

我今年早些时候刚刚开始学习 Haskell 语言,并且正在研究一个输入 java 类文件(即 FileName1.class)并剖析该文件以打印出以下内容的项目:

  • 类文件定义的类名
  • 类的方法数量、名称和类型

我做了一些研究,发现使用 JVM 可以做到这一点,但在这个过程中有点迷失,有人对如何解决这个问题有任何建议吗?

4

2 回答 2

5

您需要为 Java 类格式编写解析器。

幸运的是,已经有图书馆可以做到这一点。

解析文件,检查生成的 AST,打印所需信息。

于 2013-04-03T15:14:41.387 回答
1

试试秒差距

http://www.haskell.org/haskellwiki/Parsec

这是一个非常好的入门教程:http ://www.haskell.org/haskellwiki/Parsing_expressions_and_statements

也来自真实世界的 Haskell:http ://book.realworldhaskell.org/read/using-parsec.html

Parsec 甚至包含一个默认的 Java 语言定义。 http://hackage.haskell.org/packages/archive/parsec/3.0.0/doc/html/src/Text-Parsec-Language.html#javaStyle

此外,在检查您的 AST 时,您可能希望使用 Reader monad 来防止您的类型签名被过度污染。

于 2013-04-03T15:48:07.430 回答