From ea85f4a39686611d629552023a456e6e8199ff2c Mon Sep 17 00:00:00 2001 From: Kevin Glynn Date: Thu, 19 May 2011 18:28:20 +0200 Subject: [PATCH] little bits so that ScormEngine translation doesn't regress --- .../antlr3/src/CS2JTranslator/CS2JMain/Templates.cs | 1 + .../antlr3/src/CS2JTranslator/CS2JTransform/JavaMaker.g | 4 +++- .../antlr3/src/CS2JTranslator/CS2JTransform/JavaPrettyPrint.g | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CSharpTranslator/antlr3/src/CS2JTranslator/CS2JMain/Templates.cs b/CSharpTranslator/antlr3/src/CS2JTranslator/CS2JMain/Templates.cs index 04b521d..f3efd91 100644 --- a/CSharpTranslator/antlr3/src/CS2JTranslator/CS2JMain/Templates.cs +++ b/CSharpTranslator/antlr3/src/CS2JTranslator/CS2JMain/Templates.cs @@ -289,6 +289,7 @@ lambda(args, body) ::= << () => >> array_construct(type, args, inits) ::= ""new []"" +array_construct_nobracks(type, inits) ::= ""new "" array_initializer(init) ::= ""{ }"" application(func, funcparens, args) ::= ""()"" index(func, funcparens, args) ::= ""[]"" diff --git a/CSharpTranslator/antlr3/src/CS2JTranslator/CS2JTransform/JavaMaker.g b/CSharpTranslator/antlr3/src/CS2JTranslator/CS2JTransform/JavaMaker.g index 48dec01..da02a48 100644 --- a/CSharpTranslator/antlr3/src/CS2JTranslator/CS2JTransform/JavaMaker.g +++ b/CSharpTranslator/antlr3/src/CS2JTranslator/CS2JTransform/JavaMaker.g @@ -474,6 +474,8 @@ namespace_member_declarations: namespace_member_declaration @init { string ns = $NSContext::currentNS; bool isCompUnit = false; + CommonTree atts = null; + CommonTree mods = null; } @after { if (isCompUnit) { @@ -491,7 +493,7 @@ namespace_member_declaration } }: namespace_declaration - | attributes? modifiers? ty=type_declaration[$attributes.tree, mangleModifiersForType($modifiers.tree)] { isCompUnit = true; } + | attributes? { atts = dupTree($attributes.tree); } modifiers? { mods = dupTree($modifiers.tree); } ty=type_declaration[atts, mangleModifiersForType(mods)] { isCompUnit = true; } ; // type_declaration is only called at the top level, so each of the types declared // here will become a Java compilation unit (and go to its own file) diff --git a/CSharpTranslator/antlr3/src/CS2JTranslator/CS2JTransform/JavaPrettyPrint.g b/CSharpTranslator/antlr3/src/CS2JTranslator/CS2JTransform/JavaPrettyPrint.g index 7eb699b..53f63a7 100644 --- a/CSharpTranslator/antlr3/src/CS2JTranslator/CS2JTransform/JavaPrettyPrint.g +++ b/CSharpTranslator/antlr3/src/CS2JTranslator/CS2JTransform/JavaPrettyPrint.g @@ -516,7 +516,7 @@ primary_or_array_creation_expression returns [int precedence]: array_creation_expression returns [int precedence]: ^(NEW_ARRAY (type ('[' expression_list? ']' rank_specifiers? ai1=array_initializer? -> array_construct(type = { $type.st }, args = { $expression_list.st }, inits = { $ai1.st }) // new int[4] - | ai2=array_initializer -> array_construct(type = { $type.st }, inits = { $ai2.st }) + | ai2=array_initializer -> array_construct_nobracks(type = { $type.st }, inits = { $ai2.st }) ) | rank_specifier array_initializer // var a = new[] { 1, 10, 100, 1000 }; // int[] )