From 22caf78c9dff9b283843ba6c99c1c9beae2dc45f Mon Sep 17 00:00:00 2001 From: Kevin Glynn Date: Fri, 17 Dec 2010 09:00:02 +0100 Subject: [PATCH] simple array creation, improved comments for fields, fixed precedence of instanceof --- CSharpTranslator/antlr3/src/cs2j/CSharp/JavaPrettyPrint.g | 6 +++--- .../antlr3/src/cs2j/bin/Debug/templates/java.stg | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/CSharpTranslator/antlr3/src/cs2j/CSharp/JavaPrettyPrint.g b/CSharpTranslator/antlr3/src/cs2j/CSharp/JavaPrettyPrint.g index 8821044..5e70bab 100644 --- a/CSharpTranslator/antlr3/src/cs2j/CSharp/JavaPrettyPrint.g +++ b/CSharpTranslator/antlr3/src/cs2j/CSharp/JavaPrettyPrint.g @@ -431,7 +431,7 @@ primary_or_array_creation_expression returns [int precedence]: array_creation_expression returns [int precedence]: ^('new' (type ('[' expression_list ']' - ( rank_specifiers? array_initializer? // new int[4] + ( rank_specifiers? array_initializer? -> array_construct(type = { $type.st }, args = { $expression_list.st }) // new int[4] // | invocation_part* | ( ((arguments ('['|'.'|'->')) => arguments invocation_part)// new object[2].GetEnumerator() | invocation_part)* arguments @@ -684,7 +684,7 @@ non_assignment_expression returns [int precedence] -> op(pre={ $e1.st }, op = { $op.token.Text }, post = { $e2.st }, space = { " " }, preparen={ comparePrecedence($op.token, $e1.precedence) < 0 }, postparen={ comparePrecedence($op.token, $e2.precedence) <= 0}) - | ^(iop=INSTANCEOF ie=non_assignment_expression non_nullable_type) + | ^(iop=INSTANCEOF ie=non_assignment_expression non_nullable_type) { $precedence = precedence[$iop.token.Type]; } -> op(pre = { $ie.st }, op = { "instanceof" }, space = { " " }, post = { $non_nullable_type.st }, preparen={ comparePrecedence($iop.token, $ie.precedence) < 0 }) | unary_expression { $precedence = $unary_expression.precedence; }-> { $unary_expression.st } @@ -1281,7 +1281,7 @@ yield_statement: predefined_type: (t='bool' | t='byte' | t='char' | t='decimal' | t='double' | t='float' | t='int' | t='long' | t='object' | t='sbyte' - | t='short' | t='string' | t='uint' | t='ulong' | t='ushort') -> string(payload={$t.text}); + | t='short' | t='string' | t='uint' | t='ulong' | t='ushort') { collectComments($t.TokenStartIndex); } -> string(payload={$t.text}); identifier: i=IDENTIFIER { collectComments($i.TokenStartIndex); } -> string(payload= { $IDENTIFIER.text }) | also_keyword -> string(payload= { $also_keyword.text }); diff --git a/CSharpTranslator/antlr3/src/cs2j/bin/Debug/templates/java.stg b/CSharpTranslator/antlr3/src/cs2j/bin/Debug/templates/java.stg index fc26e66..3d3d04b 100644 --- a/CSharpTranslator/antlr3/src/cs2j/bin/Debug/templates/java.stg +++ b/CSharpTranslator/antlr3/src/cs2j/bin/Debug/templates/java.stg @@ -225,6 +225,7 @@ block(statements,issemi,isbraces) ::= << cast_expr(type, exp) ::= "()" construct(type, args, inits) ::= "new () /* [UNIMPLEMENTED] */" +array_construct(type, args, inits) ::= "new [] /* [UNIMPLEMENTED] */" application(func, funcparens, args) ::= "()" index(func, funcparens, args) ::= "[]" stackalloc(type, exp) ::= "stackalloc []"