来自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语法?
答案 0 :(得分:2)
这是一种转义标识符的方法。
假设您要命名构造函数(或函数)if
,这将与if
语句重叠(因此保留)。
如果在标识符前放置\
,则转义名称。就像字符串文字中的\"
一样。
现在,对于Java AST,选择了对齐。而不是:
| method(...)
| \if(...)
| variable(...)
您可以在每个替代方案前添加\
。