Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 是VC++;代码DOM可从VS插件访问?_.net_Visual Studio_Visual C++_C++ Cli_Codedom - Fatal编程技术网

.net 是VC++;代码DOM可从VS插件访问?

.net 是VC++;代码DOM可从VS插件访问?,.net,visual-studio,visual-c++,c++-cli,codedom,.net,Visual Studio,Visual C++,C++ Cli,Codedom,Visual Studio IntelliSense for VC++包括“完整”(英特尔和其他公司也使用)。由于C++代码DOM可以访问ADONS(如果我错了请更正),C++代码DOM也可以访问吗?这可以用于分析VS环境中的开放式VC++项目吗?扩展可以在整个项目范围内重命名成员。它由MS构建,但显然他们使用内部代码DOM来实现这一点。所以这是可能的,我只是不知道怎么做 扩展能够读取由VS创建的intellisense数据库,以列出类中的各种成员 你可以使用开源的Clang C++分析器(实际

Visual Studio IntelliSense for VC++包括“完整”(英特尔和其他公司也使用)。由于C++代码DOM可以访问ADONS(如果我错了请更正),C++代码DOM也可以访问吗?这可以用于分析VS环境中的开放式VC++项目吗?

扩展可以在整个项目范围内重命名成员。它由MS构建,但显然他们使用内部代码DOM来实现这一点。所以这是可能的,我只是不知道怎么做

扩展能够读取由VS创建的intellisense数据库,以列出类中的各种成员

<>你可以使用开源的Clang C++分析器(实际上是编译器),并将AST读入C对象模型。有关C#到Clang的绑定,请参见和

我不确定“C++代码DOM”是什么,如果它存在的话。重要的是,MSV正在使用EDG前端解析和确定符号的含义,以支持MSV IDE操作。EDG IIRC建立自己的内部数据结构,表示程序;我没有理由相信这些数据结构是“C++代码DOM”,或者它们对您是可见的,或者您可以在MSDN上找到它们

<>你真正的问题是要分析C++源代码。我同意,拥有EDG前端信息将有助于实现这一目标;你真的不想尝试编写你自己的C++解析器(而且你需要经过分析的很多东西,谷歌的文章在“解析后的生命”)。 所以你有以下几种选择:

  • 在MSV中找到进入EDG机械的门。因为你运气不好,而且微软似乎没有任何文件证明这是可行的,所以你可能不会有很多运气。如果我站在MS的立场上,我不会公开;这将是另一个令人头疼的支持问题,而且在一个甚至不是他们的软件上
  • 直接使用商用EDG前端。我的理解是,他们免费提供个人使用许可证。(我的理解可能是错误的)。通过这种方式,您可以跳过MS对访问的任何限制。。。以自己配置EDG前端为代价。缺点:EDG希望成为编译器的前端,而不是分析器的前端。这种区别可能看起来很微妙,但它可能会咬到你。例如,我怀疑EDG会抛弃评论;编译器前端不需要它们。如果您想检查分析器中的注释,这可能是一个真正的问题
  • 使用。这是一个开源C++解析器,设计用于各种各样的程序分析目的,以及用于前端C++编译器。我没有这方面的经验,但它似乎经过深思熟虑,似乎提供了很多设施。我不知道它是否对C++的MS方言有特定的支持。
  • 使用另一个商业前端,我们的。作为这方面的架构师,我非常确信它经过了深思熟虑(包括对MS Visual C++的支持);有一些具体的经验,用它来执行复杂的C++分析和转换任务。与EDG不同,它旨在支持分析、转换和生成(例如,它捕获注释,甚至文字的基数,以便正确地重新生成它们)。基金会,DMS,有大量的机械来支持自定义分析:AST和符号表构造,属性文法,数据流框架,在AST级别的过程内控制和数据流分析,BDD管理,源模式匹配,源到源转换。Clang和EDG提供AST和symbol表格结构;Clang(但我不认为EDG)有流量分析(在LLVM级别),但没有AST级别的流量分析(AFAIK)。Clang和EDG都不提供源模式/转换功能,因此哪个更好取决于您的长期任务。与其他选项相比,我们的C++前端不是开源的或免费的;可以获得研究许可证

刚从你的办公室出来;这是个好问题。再说一遍,“不清楚你在问什么?”-真的吗?“我对这个问题的前提一无所知”并不意味着“不清楚你在问什么”。@Dave-我添加了一个答案来证明非微软员工也可以解决这个问题。有些人做的事情接近我想要的。@Davehiller如果是关于主题的,在这里非常受欢迎。除此之外没有讨论。如果我们开始陷入“这里有人能回答这个问题吗?”那么我们很快就会陷入这种棘手的焦虑,任何困难都可能无法回答。除非我们真的打开这个问题寻求答案,否则坦率地说,我们不知道谁能回答这个问题。这就是我们首先要问的全部问题。@b论证这个问题仅仅存在有什么害处?它的主题,它的有趣,有人可以想象回答它。见鬼,微软的人可能会看到并回答这个问题,然后这是对网站的一个很好的补充。在尝试看到任何积极的东西之前,请停止寻找任何关于问题的潜在消极的东西。“DOM”基本上是HTML对AST的表达。不过,它假定有一个规范语法,而C++编译器通常使用稍微不同的语法。(例如,创建更好的错误消息。)C#中的DOM表示用于代码生成的“分辨率不好的AST”。你不能用C语言提供的分辨率来真实地分析C++程序。offers@Geotarget:那么C#Dom与这个问题有什么关系?@IraBaxter-当我说“Code Dom”时,我在寻找什么-许多人评论说,他们不理解什么是代码DOM和/或将其与JS HTML DOM混淆。当然,我不是C++专家(正如我之前所说),所以我不知道C++代码DOM中可能需要什么,尽管我理解不可避免的软件