ADT 替代项开头的“\”是什么意思?
What does `\` mean at the beginning of an ADT alternative?
来自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 语法?
这是一种转义标识符的方法。
假设您要命名一个构造函数(或函数)if
,这将与 if
语句重叠(因此被保留)。
如果你在标识符前面放一个 \
,你就转义了这个名字。就像字符串文字中的 \"
一样。
现在,对于 Java AST,选择对齐。而不是:
| method(...)
| \if(...)
| variable(...)
你在每个备选方案前加一个\
。
来自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 语法?
这是一种转义标识符的方法。
假设您要命名一个构造函数(或函数)if
,这将与 if
语句重叠(因此被保留)。
如果你在标识符前面放一个 \
,你就转义了这个名字。就像字符串文字中的 \"
一样。
现在,对于 Java AST,选择对齐。而不是:
| method(...)
| \if(...)
| variable(...)
你在每个备选方案前加一个\
。