3

ternJS有几个。JSON 文件defs包含库的定义。有人可以向我解释如何最好地为我的 javascript 库/或仅定义对象生成我自己的吗?

我看不出有没有通用的程序呢?

4

2 回答 2

10

Tern 中包含一个用于此目的的工具。请参阅http://ternjs.net/doc/manual.html#utilscondense。它在您的文件上运行 Tern 并尝试输出它找到的类型。它远非完美无缺,但对于简单的程序来说效果很好。对于具有复杂结构或接口的文件,您通常必须手写定义。

于 2013-09-24T11:30:14.700 回答
4

我想了三种方法来解决你的问题:

使用抽象语法树解析器和访问者

解决您的问题的一种方法是使用抽象语法树解析器访问者,以便自动执行扫描代码和记录代码的任务。

这里的资源会有所帮助:

- http://ramkulkarni.com/blog/understanding-ast-created-by-mozilla-rhino-parser/ -什么是 JavaScript AST,如何使用它?

您通常使用解析器来检索树,然后使用访问者访问所有节点并在其中完成您的工作。

您实际上将拥有一个表示特定库的树,然后您必须编写代码以将其存储为您链接到的 def 格式。

获取文档生成器并进行修改

另一个想法是下载文档生成器的源代码,例如https://github.com/yui/yuidoc/

通过修改样式/输出格式,您可以生成适当的 json 格式的“文档”。

将现有文档 (HTML doc) 转换为 JSON

您可以制作一个采用标准文档格式的解析器(我确信 Javadoc 是一个用于 java 的解析器,应该是一个用于 javascript 的解析器),并编写一个转换器来提取相关信息并存储在 JSON 定义中。

于 2013-09-24T10:44:56.783 回答