在ADT替代品的开头,“\”是什么意思?

时间:2016-04-11 14:29:48

标签: rascal

来自http://tutor.rascal-mpl.org/Rascal/Libraries/lang/java/m3/TypeSymbol/Bound/Bound.html

data Bound 
   = \super(list[TypeSymbol] bound)
   | \extends(list[TypeSymbol] bound)
   | \unbounded()
   ;

为什么所有替代方案都以\开头,是否有任何具体原因?这是什么意思?这是某种约定还是特殊的Rascal语法?

1 个答案:

答案 0 :(得分:2)

这是一种转义标识符的方法。

假设您要命名构造函数(或函数)if,这将与if语句重叠(因此保留)。

如果在标识符前放置\,则转义名称。就像字符串文字中的\"一样。

现在,对于Java AST,选择了对齐。而不是:

| method(...)
| \if(...)
| variable(...)

您可以在每个替代方案前添加\