如果使用某些行定义DSL文件,并且其中一个使用变量,则不能在规则中使用两次,因为您将收到重复的变量错误。
避免这种情况的最佳方法是什么?理想情况下,我想避免创建DSL行的两个副本来更改变量名称。
即DSL线路:
[when][]For all qualifications of type Higher=$highers: Higher()
这不能在同一规则中使用两次,否则我们会得到一个重复的$ highers变量。
答案 0 :(得分:1)
您可以像任何其他文本块一样合成绑定变量的名称:
[when][]there is a qualification of type {qualification}=
${qualification}: {qualification}()
但它会变得棘手,因为你也必须引用这个变量变量:
[then] print {qualification}=System.out.println( ${qualification} );
而不是直截了当的
[then] print qualification=System.out.println( $qualification );
潜在的危险是,作为“地标”的文本数量仍然存在。围绕宏变量减少,这可能导致多次匹配。