次のような変数の型を繰り返す必要のない変数宣言を文法でサポートできるようにしようとしています。int i = 3, j = 4, k;
私が抱えている問題は、生成されたツリーにあります。これが私のルールです...
varDeclaration
: type ID (ASSIGN expression)? (COMMA ID (ASSIGN expression)?)* SEMICOLON -> ^(VAR_DECL type ID expression?)+;
宣言を個別の変数宣言に正常に分割しますが、それらすべてに対して式ツリーを繰り返しています。
したがって、 の場合、両方ともAST でint x = 4, y = 5
値を持ちます。4
オペレーターまたは私が使用できる何かの助けをいただければ幸いです。