4

以下 StringTemplate 给了我一个“无效字符'}'”异常,因为后面的大括号结束return null;

$StatementList:{statement | 
public T $statement$(X x) { return null; }  }$

我想要一个像这样的输出:

public T statement1(X x) {return null; }
public T statement2(X x) {return null; }

我怎样才能逃脱这个闭合的花括号?

4

2 回答 2

5

我找不到转义字符的方法,但我确实设法使用 unicode 字符代替花括号来让它工作。

statementTemplate(StatementList) ::= <<
<StatementList:{statement | 
public T <statement>(X x) <\u007B> return null; <\u007D> }>
>>

这产生了:

public T statement1(X x) { return null; } 
public T statement2(X x) { return null; } 
public T statement3(X x) { return null; }
于 2014-11-08T12:36:57.183 回答
0

反斜杠 ( \) 为我工作:

$StatementList:{statement | 
public T $statement$(X x) { return null; \}  }$

似乎没有必要逃避左大括号。

于 2022-01-12T16:26:47.073 回答