0

次の Xtext2 文法があります。

Bibliography:
  macros += Macro*
;

Macro:
  "@string{" name = ID "=" value = LATEXSTRING "}"
;

terminal LATEXSTRING:
  '"' (!('"'))* '"' 
;

文字列を解析するとき

@string{ABBREV = "Some Long Text"}

次の値を持つmacroタイプのオブジェクトに格納します。Macro

macro.name: ABBREV
macro.value: "Some Long Text"

タイプString( EString) の両方。ただし、引用符なしで値を取得したいと思います。どうすればそれを達成できますか?

4

1 に答える 1

1

ルール LATEXSTRING の値変換を登録する必要があります。docsによると、次のようになります。

@Inject
private LatexStringConverter latexStringConverter; 

@ValueConverter(rule = "LATEXSTRING")
public IValueConverter<String> converterForLatexString() {
  return latexStringConverter;
}

public class LatexStringConverter extends AbstractLexerBasedConverter<String> {
  @Override
  protected String toEscapedString(String value) {
    ..      
  }

  public String toValue(String string, INode node) {
    ..
  }
}
于 2012-07-12T12:21:38.407 に答える