问题标签 [dsl-tools]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1005 浏览

obfuscation - 将 C# Visual Studio DSL 解决方案混淆为 VSIX 的最佳实践

我想知道是否有人对混淆 DSL 有任何建议?

背景 - 我们创建了一个 DSL,我们将把它作为 VSIX 文件放入 Visual Studio Gallery。

我们已经使用 dotfuscator 对其他项目进行混淆,但我想知道在打包 DSL 以部署为 VSIX 时是否有任何最佳实践或问题

0 投票
1 回答
97 浏览

visual-studio-2010 - 部署 DSL 时如何包含 ProjectItem?

我正在使用 Visual Studio 2010 Beta 2,我想将完成的 DSL 与生成的 ProjectItem 一起打包和部署。我可以看到所有内容都已正确编译。我有我的 VSIX 文件,但不包括压缩项目项。

0 投票
2 回答
414 浏览

visual-studio-2010 - 为什么部署 VSIX 时没有项目项?

我们有一个 VS2010 Beta 2 DSL 项目,我们可以在我们的开发机器上构建、部署和测试,一切都很好,即当我们转到“添加新项目”时,我们可以选择我们的 DSL

当将 VSIX 提供给其他人以尝试他们可以看到相关项目项的唯一方法是,如果他们在他们的机器上构建 DSL 项目,他们不需要 F5,这只是一个简单的构建解决方案,然后瞧,他们可以看到它。

这是错误还是用户错误?

0 投票
1 回答
230 浏览

visual-studio-2008 - 在实验性配置单元中向解决方案资源管理器添加资源

我目前正在使用 Visual Studio 2008 中的 DSL 工具开发一个项目。

有没有办法在运行时自动将资源添加到实验配置单元的解决方案资源管理器中?我正在根据屏幕上的内容创建新图表,并将它们保存到项目所在的目录中。我想知道是否有办法让它们自动添加到解决方案资源管理器中?(我不想每次都手动拖入文件)

0 投票
1 回答
121 浏览

dsl - DSL Toolkit:我怎样才能在这种情况下获得正确的元素?

信息:C#,VS2010 Beta 2,DSL ToolKit Beta 2

我正在尝试在使用时在我的 DSL 图中创建以下生成的 XML

这就是方法和过滤描述符域类的外观

领域类

我相信我已经正确设置了多重性:

方法应该只有 1 个过滤器描述符

一个过滤器描述符可以有许多过滤器描述符,即

问题是输出 XML 是这样的:

我们在 DSL 图中的多个位置有相同的模式,希望有一个简单的方法来解决这个问题,而不是覆盖每个域类的 ReadElements 和 WriteElements

0 投票
1 回答
154 浏览

visual-studio - DSL 资源管理器中的永久节点

在我的自定义 DSL 工具中,我希望其资源管理器中有一个无法删除的节点。除此之外,我希望它像一个常规节点。基本上我想要的是一个类似于DSL Explorer 中的Xml 序列化行为的节点:

Xml 序列化行为上下文菜单插图 http://img31.imageshack.us/img31/740/xmlserializerbehavior.png

通过在 Microsoft.VisualStudio.Modeling.Sdk.DslDefinition.dll 程序集中的 XmlSerializationDefinitionSerializer 类上使用 Reflector,我发现它只是 DomainClass 的派生类,因此(显然)没有什么特别之处。

我已经定义了一个用作节点的 DomainClass,右键单击它可以让我按照我想要的方式添加子节点,我就是无法摆脱删除菜单选项:

删除上下文菜单项插图 http://img705.imageshack.us/img705/9033/validators.png

我已经尝试了任何我能想到的... “验证器”节点丢失...我查看了 DomainClass 和根模型与验证器域类之间的 DomainRelationship 的所有属性,但似乎没有一个可以处理这个问题。我还查看了 DSL Explorer 窗口中 Explorer Behavior 节点中的所有内容。我完全被难住了。有人知道怎么做这个吗?

0 投票
1 回答
216 浏览

.net - 使用 DSL 解析文档

我试图想出一种方法来浏览大约一百万份正式文件(为了论证,它们是论文文件)。它们并非都是标准化的,但足够接近。它们是标题、部分、段落等。可能会出现细微的差异,例如在英语中,我们称标题为“标题”,但在法语中为“Titre”。

因此,在我看来,最好的方法是创建一个包含所有可能的 Title 组合的 EBNF:= Title | 以滴度为例。

我不太关心提出 EBNF。我主要关心的是如何实现解析。我看过 ANTLR、OSLO、Irony 和许多其他人,但没有专业知识来判断它们是否适合我的任务。

所以,我对你们中的学者的问题是

  1. 您会推荐哪种 DSL 工具来解析这种规模的文档?
  2. 什么 DSL 工具在解析和匹配方面最准确(即我们是否必须为大写和小写定义规则,数字与罗马数字和外语(法语)呢?
  3. 是否有我没有考虑过您会推荐作为 DSL 替代方案的流程/算法?(从头开始重写是一种选择,但我想让一些东西快速工作)。
  4. 有没有人尝试将学习和智能添加到通过 DSL 解析的算法中(想想遗传算法和神经网络)?
  5. 你会在生产环境中使用这些 DSL 工具吗?

我选择的开发平台是 C#。我提到这一点是因为理想情况下我想将 DSL 工具集成到代码中,以便我们可以在现有应用程序中使用它。

0 投票
1 回答
206 浏览

visual-studio - 为什么工具箱的 DSL Designer 类别中缺少“命名域类”工具?

我有 Cook、Jones 等人的 VS DSL Tools 的 Domain-Specific development

这本书和各种在线教程都提到了一个 NamedDomainClass 工具,它应该出现在 DSL Designer 工具箱中。我已经在 Win XP 上安装了 VS 2010 beta 2 - 但是工具箱中缺少这个工具。我已经使用书中提到的最小项目模板创建了一个项目。我有 12 个工具出现,包括域类工具。

我在网上搜索过,显然没有其他人有这个问题。

  • 有人可以确认它在 VS 2010 Beta 2 中丢失了吗?
  • 如果没有,我怎样才能让它出现?
  • 有什么方法可以添加域类实例并对其进行调整以使其成为命名域类?书中提到,NamedDomainClass 工具完成了一些必须唯一的验证和序列化更改。

我在 DSL Designer 类别中尝试了“选择项目”上下文菜单。这些工具显然是动态添加的;不要出现在出现的对话框的列表中。

0 投票
1 回答
1159 浏览

c# - T4(文本模板转换工具包),用于根据 C# 中的基本类型列表(例如 PointI32、PointF32 等)生成一组类型

类似于Boost Preprocessor 库,用于基于 C++/CLI 中的基本类型列表(例如 PointI32、PointF32 等)生成一组类型,我在问如何生成:

对于不同的基本(POD)数据类型,例如:

在 Visual Studio 2008 或更高版本中使用 T4(文本模板转换工具包)。

请参阅http://www.olegsych.com/2007/12/text-template-transformation-toolkit/http://msdn.microsoft.com/en-us/library/bb126445.aspx

0 投票
3 回答
4633 浏览

msbuild - 在 MsBuild 中转换 TT 文件

我需要使用 MsBuild 构建 DSL 解决方案并希望能够转换 TT 文件,我已经尝试了http://msdn.microsoft.com/en-us/library/ee847423(VS.100).aspx上的指南但我收到以下错误:

无法解析文件的包含文本:{0}

并且

加载包含文件“{0}”返回空字符串。

MSDN 上有一个页面有这些问题和解决方案:http: //msdn.microsoft.com/en-us/library/bb126242 (VS.100).aspx但并没有真正给我足够的信息来解决问题。

在错误中要注意的一件事是它具有以下路径:

错误 72 无法解析文件的包含文本:C:\source\XXXXXXXX\Dsl\GeneratedCode\Dsl\ToolboxHelper.tt。行=-1,列=-1 Dsl

但实际 TT 文件的位置是

C:\source\XXXXXXXX\Dsl\GeneratedCode\ToolboxHelper.tt