Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.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/8/swift/18.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
Java xtext中终端规则的快速修复_Java_Eclipse_Dsl_Xtext - Fatal编程技术网

Java xtext中终端规则的快速修复

Java xtext中终端规则的快速修复,java,eclipse,dsl,xtext,Java,Eclipse,Dsl,Xtext,我的DSL语法看起来像(只显示必要的部分) 其中POINTINGADD是一个终端规则,表示名称应以“\u1”开头 现在我想为这个终端规则实现一个快速修复。可能吗?我应该走哪条路 提前谢谢 如果您想要实现一个“语义”快速修复(即,在模型上而不是在文本上操作的快速修复),最好使用更宽松的语法,它接受没有前导下划线的名称,然后创建一个验证来对此进行投诉并指定一个特定的错误代码,最终可以用来触发 或者,当处理语法错误时,文档建议使用,但我还没有使用这种方法。除了第8行中缺少分号之外,我看不到需要修复的问

我的DSL语法看起来像(只显示必要的部分)

其中POINTINGADD是一个终端规则,表示名称应以“\u1”开头

现在我想为这个终端规则实现一个快速修复。可能吗?我应该走哪条路


提前谢谢

如果您想要实现一个“语义”快速修复(即,在模型上而不是在文本上操作的快速修复),最好使用更宽松的语法,它接受没有前导下划线的名称,然后创建一个验证来对此进行投诉并指定一个特定的错误代码,最终可以用来触发


或者,当处理语法错误时,文档建议使用,但我还没有使用这种方法。

除了第8行中缺少分号之外,我看不到需要修复的问题?我真正想要的是,每当我输入一个没有下划线的单词时,它应该提供一个快速修复,以下划线开头的同一个名字,就是那个。我明白了。你知道该怎么做吗?在这种情况下,你可以放松终端规则,省去下划线,并为名称+快速修复添加语义验证。我已经实现了第一种技术及其工作原理。第二种技术看起来很麻烦,所以我没有应用它。非常感谢。
assemblerProgram: // standard way of defining model
content += CommandLine+
;

CommandLine: 
ControlInstructions | Pointaddress ;

Pointaddress:
name = POINTINGADD

terminal POINTINGADD:('_')('a'..'z'|'A'..'Z')? ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;