问题标签 [oslo]
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.
xml - 您对 Microsoft Oslo MGraph 感觉如何?
MGraph 是微软“奥斯陆”带来的一种很棒的文本数据格式。
您认为它有机会像今天的 XML 一样广泛吗?
示例(谷歌地理编码):
.net - T4 vs CodeDom vs 奥斯陆
在我正在处理的应用程序脚手架项目中,我试图决定是否使用Oslo、T4或CodeDom来生成代码。我们的目标是将依赖关系保持在最低限度,并根据用户故事为领域驱动设计驱动代码生成。第一步是从用户故事创建测试,但我们希望领域专家能够在各种不同的媒体(例如自定义应用程序、Word 等)中编写他们的故事,并且仍然从用户故事生成测试故事。
到目前为止我所知道的:
- CodeDom 需要 .NET 但只能输出 .NET 类文件(例如 .cs、.vb)。难度级别相当高。
- T4 需要 CodeDom 和 VS Standard+。难度级别相当合理,尤其是使用T4 Toolbox时。
- 奥斯陆很新。我不知道依赖关系,但我想你必须至少在 .NET 3.5 上。我也不确定代码生成能力或添加新语法的复杂性。但是,领域专家可能很容易在 Intellipad 中编写用户故事。也不确定将 Word 中的故事转换为 MGrammar 的难易程度。
您对上述任何工具有什么想法、经验等。我们希望坚持使用 Microsoft 或开源工具。
oslo - 转移减少和减少减少冲突
我很难解决这个问题,需要一些帮助来理解减少和减少冲突。我有一个语法,我似乎无法理解它为什么会出现问题。我可以附上语法,但我想了解它是如何工作的。
第一个问题,Mgrammer 创建什么类型的解析器?据我了解, shift reduce 和 reduce reduce 冲突取决于解析器的类型。
第二个问题,什么表示减少减少冲突,什么表示转移减少冲突?
我知道词法分析和形式语法的基础知识,但是自从我从事语言设计工作以来已经有一段时间了,所以这里的任何帮助都非常合适。
更新:
我正在使用一种重要的空白语言,我想知道在 MGrammar 中这样做的可能性,我需要先看一下才能解决歧义吗?
oslo - 微软的奥斯陆项目将解决哪些问题?
我看了一些关于“奥斯陆”的视频/网络广播,但我仍然看不到这一切是如何结合在一起的。
我知道奥斯陆是一个建模平台。
创建 DSL 的过程是什么?
它不仅仅是创建 DSL 的工具吗?
我了解 Mgramma 用于创建 DSL 的语法。
M语言是干什么用的?
什么是 MSchema?
创建 MGrammar 并将其编译为 .mgx 后,下一步是什么?
visual-studio-2008 - “DSL 工具”和“奥斯陆”有什么区别?
我刚刚开始使用特定领域的工具开发,并且正在使用 Visual Studio SDK DSL 工具。但是,我听说微软在特定领域的开发方面有另一项举措,称为“奥斯陆”。
我的印象是 DSL Tools 专注于图形领域特定语言,而 Oslo 专注于文本语言,但我不确定。
有人可以指出“DSL 工具”和“奥斯陆”之间有什么区别吗?
oslo - 有没有更好的方法在 MGrammar 中定义小数?
我正在使用 Microsoft 的新 M 语法中的 DSL,它需要允许十进制值。我将小数定义为
这似乎有效,但有更好的方法吗?只是觉得我错过了一些东西。
oslo - 用于解析 IF 语句的 MGrammar
我正在建立一个 MGrammar 规范来解析一些伪代码,以寻找特定的信息位。除了 1 个关键元素外,我的大部分规范都在工作。
伪代码支持 if-then-else 语法,我一直无法找到令人满意的解析方式。确切的构造是...
IF expression operator expression THEN
Statement1
Statement2
Statementn
ELSEIF expression operator expression THEN
Statement1
Statement2
Statementn
ELSE
Statement1
Statement2
Statementn
ENDIF
... Else 和 Elseif 是可选的。
到目前为止我所拥有的是:`syntax Statement = r:ReturnClause => r |
i:IfClause => i |
ei:ElseifClause => ei |
e:ElseClause => e |
结束:结束子句 => 结束 |
v:表达式 => v ;
语法 IfClause = If name:Identifier operator:Operator Then statement:Statement => If[name, operator, Then[statement]];
语法 ElseifClause = Elseif name:Identifier operator:Operator Then statement:Statement => ElseIf[name, operator, Then[statement]];
语法 ElseClause = Else statement:Statement => Else[statement];
语法 EndClause = Endif; `
但是,'Then' 和 'Else' 之后的语句不够贪心,只捕获解析树中的第一条语句。
有没有人尝试使用 MGrammar 实现 If 语句的解析或有任何建议?
tsql - 有没有办法用“Oslo”M 运行时解析 T-SQL 选择语句?
搜索 Microsoft.M 程序集,我发现了 Microsoft.TSQL10 命名空间中的 SourceParser 类和整组类,这些类似乎与解析 SQL 有关,但我找不到如何使用它的示例。
我知道你可以很容易地生成 T-SQL,但是你能使用它、操作数据结构并重新输出 SQL 选择的修改版本吗?
iis - 微软代号?
今天我在MSDN 论坛上散步,看到两个非常奇怪的论坛,Microsoft Codename 'Oslo'和Microsoft Codename 'Dublin',这是什么?他们做什么?
oslo - 用 M 编写解析器,消费而不规则
我正在编写一个 HTML 解析器以供自己消遣,我想尝试 M。
我将这项工作基于 HTML 4.01 标准,并在其中说
尽管 STYLE 和 SCRIPT 元素使用 CDATA 作为其数据模型,但对于这些元素,用户代理必须以不同方式处理 CDATA。标记和实体必须被视为原始文本并按原样传递给应用程序。字符序列“</”(结束标记打开分隔符)的第一次出现被视为终止元素内容的结尾。在有效文档中,这将是元素的结束标记。
我想了一会儿,真的我想做的是这样的
我发现我自己发现我想要执行某种匹配的标记化规则,直到我到达一个开放的尖括号 < 后跟一个正斜杠 /。
如果转义序列是单个字符,这将不是问题,因为那时我可以写这个。
这会起作用,不确定我是否以正确的方式解决这个问题,但问题与我在另一种语言中嵌入了一种语言有关,但在这种情况下我不关心脚本语言,所以我只是想要跳过一个头。