文法からコードを生成しようとしています。オブジェクトではなく最終値 e を取得する方法を知りたいです。たとえば、私は持っています:
Interval:
'[' lower_bound=Expr ',' upper_bound=Expr ']'
| '[' lower_bound=Expr ',' upper_bound=Expr'['
| ']' lower_bound=Expr ',' upper_bound=Expr ']'
| ']' lower_bound=Expr ',' upper_bound=Expr '['
;
Expr:
literal=INT
| integer=INT '.' decimal=INT
| no_constraint?='infty'
| group=GroupName
| metric=NM
| right_side=Atomic Operator left_side=Atomic
;
コードジェネレーターテンプレートには次のものがあります。
'''
Term Value = «interval.lower_bound», «interval.upper_bound»
'''
私は言語のファイルに入力しました:
[10, 30]
コードを生成すると、オブジェクトが配置されます。
Term Value = org.xtext.sla.dyslacc.impl.ExprImpl@2a421168 (literal: 10, integer: 0, decimal: 0, no_constraint: false, metric: null), org.xtext.sla.dyslacc.impl.ExprImpl@5784d884 (literal: 30, integer: 0, decimal: 0, no_constraint: false, metric: null)
そして私が欲しかったのは、それがリテラルか制約かに関係なく、テンプレートに入力された値を単純にすることです:
10,30
(文字列としてのすべては問題ありません)
何か案が??
ありがとうございました