【问题标题】:Get name of c function given the filename and the line number - elisp在给定文件名和行号的情况下获取 c 函数的名称 - elisp
【发布时间】:2011-08-16 16:31:19
【问题描述】:

我正在尝试编写一个脚本,告诉我 C 代码库中包含对函数 X 的调用的所有函数。

我的策略是调用 rgrep 并从 te 输出确定调用搜索字符串的函数。

我几乎不知道口齿不清,所以这对我来说也是一种教育经历,所以请不要给出类似于“使用 AWK NOOB”的答案

【问题讨论】:

  • AFAIK, rgrep 是一个 UNIX 命令行应用程序。那么这和 Lisp 有什么关系呢?
  • 好吧,我想既然你可以在 emacs 中交互地运行 int,那么有一个 elisp 接口,对吧?
  • 那么问题真的是,“我如何从给定的行号搜索到函数的开头,并提取函数的名称”?

标签: c elisp


【解决方案1】:

您尝试过 cscope 吗? http://cscope.sourceforge.net/

【讨论】:

    【解决方案2】:

    鉴于点在函数中,此函数用于查找函数名称:D

    (defun search-fun () (interactive)
      (search-backward-regexp "[a-zA-Z_][a-zA-Z0-9_]*[ \n\t]+\\([a-zA-Z_][a-zA-Z0-9_]*\\)[ \n\t]*([^<>=]*)[ \n\t]*{")
      (setq str (match-string 1))
      (if (string= str "if") (search-fun ) (return str)))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多