当前位置: 首页 > 知识库问答 >
问题:

更改Xtext中的多行注释字符

马高谊
2023-03-14

我想要一个Xtext语法,允许我这样写MIME媒体类型:

mediaType application/atom+xml 
specURL "http://www.rfc-editor.org/rfc/rfc4287.txt",

这不是问题,但以下是:

mediaType application/* 
specURL "http://www.iana.org/assignments/media-types/application",

您可以猜到通常定义多行注释的/*字符会带来什么麻烦。它的终端在Xtext提供的默认终端中定义,更具体地说是在ML_注释终端中:

terminal ML_COMMENT : '/*' -> '*/';

我通过将默认终端复制到我自己的新终端来定制它,其中ML_COMMENT终端是这样定义的:

terminal ML_COMMENT : '"""' -> '"""';

这产生了一种更具Python风格的多行注释方式。它在生成的DSL中运行良好。但是当我试图为应用程序/*定义媒体类型时,/*字符仍然会带来问题,如上所示。我收到一条错误消息,输入不匹配“/*”预期“}”(字符}将指定媒体类型列表的结尾)。

更令人不安的是,当我键入一个组合字符时,Xtext编辑器的内容辅助功能仍然会自动填充结尾*/多行注释字符(据推测已过时)/*组合字符。当我重写多行注释终端时,我想知道为什么auto complete仍然使用旧的ML_注释定义。我需要重写其他东西吗?

以下是媒体类型语法的一些片段:

MediaType returns restapi::MediaType:
{restapi::MediaType}
'mediaType' name=MediaTypeQualifier ('specURL' specURL=EString)?;

MediaTypeQualifier:
    MediaTypeFragment ('/' MediaTypeFragment)?(';' MediaTypeFragment'='MediaTypeFragment)*; 

MediaTypeFragment:
    (ID ( ('-'|'+'|'.') ID )* ) | '*'

我在Eclipse4.2.2中使用Xtext版本2.3.1。是否有人有覆盖多行注释终端的经验?我错过了什么吗?

共有1个答案

习胤运
2023-03-14

从您提供的语法片段中很难看出,但在我看来,您的语法中仍然有一个关键字/*

 类似资料:
  • 本文向大家介绍Perl中的单行注释和多行注释语法,包括了Perl中的单行注释和多行注释语法的使用技巧和注意事项,需要的朋友参考一下 同其他大多数编程语言一样,Perl中的单行注释也是#开头,例如: 但多行注释,不同的语言有不同的注释方式,比如说: Java,C/C++: Python: Ruby: Shell: Perl: 多行注释为: 说明:第一个等号必须紧跟一个字符! 比如说:

  • 本文向大家介绍PowerShell单行注释、多行注释、块注释的方法,包括了PowerShell单行注释、多行注释、块注释的方法的使用技巧和注意事项,需要的朋友参考一下 PowerShell的注释符分为行注释符和块注释符。行注释符使用井号(#)引起一行;块注释符使用“<#”和 “#>”来引起一段注释。 行注释符 举例如下: 块注释符、多行注释 举例如下: 这是小编每次写脚本之前,都会定义的一段关于脚

  • 问题内容: 我要呼吁汇率第三方API,但JSON返回不断变化,如果我申请到的转换,它将返回我:,所以如果我的要求来,它将返回我。 我将不得不使用将返回的结果映射到pojo中,是否有任何可行的方法? 我当前的硬编码解决方法: 问题答案: 是具有值的字段的对象。 否是with键/值对。 两者都是正确的,但是由于before的值是动态的(变化的),因此它是您需要的第二种解释。 因此,请勿要求将JSON转

  • 如何更改 vs 代码中注释前后字符的颜色。我说的是或 /* */ 或 # 字符。我知道如何更改评论颜色 如何更改visual studio代码中注释的颜色? 但找不到有关“框架”字符的任何信息。

  • 在观看了一位著名的python程序员的Sublime3 screencast之后,我发现用花哨的字体显示代码注释是一个很好的想法,它让注释更容易区分,并使注释阅读更愉快。一个例子如下: 在这个演示中,代码注释以浅色手写字体显示,使其更容易与真实代码区分,同时保持注释阅读的乐趣。 我浏览了https://code.visualstudio.com/docs/getstarted/,但似乎找不到更改代

  • 我有一个被注释为的类,然后将其添加到另一个类中。但是,我需要删除这个注释,而是在以前自动连线它的类中用一个注释方法创建它。 以前的类看起来像: ...或者我直接调用这个方法(在我看来不是正确的方法): …或者这两个都不正确?