V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Deteriorator
V2EX  ›  程序员

如何快速导出或打印出源代码中的所有函数名和类名?

  •  
  •   Deteriorator · 2020-06-24 10:25:13 +08:00 · 1727 次点击
    这是一个创建于 525 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如标题,请问如何快速导出或打印出源代码中的所有函数名和类名?不局限于某一种语言,搜索一段时间了,没找到解决方案,若有知道的请不吝赐教,谢谢大佬!
    12 条回复    2020-06-24 21:36:12 +08:00
    GeruzoniAnsasu
        1
    GeruzoniAnsasu   2020-06-24 10:51:45 +08:00   ❤️ 1
    快速 和 不限语言 明明就冲突啊,每个语言语法不一样想怎么快速法
    而且没有类的语言呢?


    doxygen
    go doc
    javadoc

    也许是你想要的
    Deteriorator
        2
    Deteriorator   2020-06-24 10:55:59 +08:00
    @GeruzoniAnsasu 描述有误,函数名或类名,有类的包含函数名
    GeruzoniAnsasu
        3
    GeruzoniAnsasu   2020-06-24 11:00:43 +08:00
    @Deteriorator 我想表达的是,通用方法和快速冲突,有很多针对不同语言的自动文档生成工具,对不写额外注释的函数这些工具一般也能导出空的描述段落。所以建议先了解一下这些东西看能不能满足你的需求
    Deteriorator
        4
    Deteriorator   2020-06-24 11:03:41 +08:00
    @GeruzoniAnsasu doxygen 大概符合需求,需要试一试,多谢
    opengps
        5
    opengps   2020-06-24 11:28:38 +08:00
    写个程序反射加载提取
    ygtq
        6
    ygtq   2020-06-24 11:56:51 +08:00
    @opengps 具体怎么写? 楼主没说是什么语言的
    arrow8899
        7
    arrow8899   2020-06-24 12:06:03 +08:00
    只要类名 函数名,没其他需求的话,直接匹配关键字就可以。
    Howlaind
        8
    Howlaind   2020-06-24 12:57:37 +08:00 via Android
    感觉 ctags 就可以
    realpg
        9
    realpg   2020-06-24 13:05:18 +08:00
    IDE 挂好语言插件
    截图类结构 ocr
    Deteriorator
        10
    Deteriorator   2020-06-24 14:23:50 +08:00
    @arrow8899 可否举个例子?
    csl1995
        11
    csl1995   2020-06-24 14:44:09 +08:00
    感觉正则应该可行
    比如针对 C/C++
    在源文件中匹配数据类型( int 、string 之类)开头,且末尾没有分号就能匹配到函数定义
    类的话就匹配 class 关键字
    xizismile
        12
    xizismile   2020-06-24 21:36:12 +08:00 via Android
    分享一个思路

    1.源代码转化成抽象语法树
    2.抽象语法树进行统计
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1084 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 21:08 · PVG 05:08 · LAX 13:08 · JFK 16:08
    ♥ Do have faith in what you're doing.