From f49d562c9cd4718de03da86fcbf01d785cd24b68 Mon Sep 17 00:00:00 2001 From: Kevin Glynn Date: Fri, 20 May 2011 13:40:32 +0200 Subject: [PATCH] treat normal events like fields (their delegate type is sufficient for the translation). Still need to address add/remove blocks --- .../src/CS2JTranslator/CS2JTransform/JavaMaker.g | 10 +++++----- .../CS2JTranslator/CS2JTransform/TemplateExtracter.g | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/CSharpTranslator/antlr3/src/CS2JTranslator/CS2JTransform/JavaMaker.g b/CSharpTranslator/antlr3/src/CS2JTranslator/CS2JTransform/JavaMaker.g index f53fe8f..3ac05ee 100644 --- a/CSharpTranslator/antlr3/src/CS2JTranslator/CS2JTransform/JavaMaker.g +++ b/CSharpTranslator/antlr3/src/CS2JTranslator/CS2JTransform/JavaMaker.g @@ -531,7 +531,7 @@ class_member_declaration: a=attributes? m=modifiers? ( c='const' ct=type constant_declarators ';' -> ^(FIELD[$c.token, "FIELD"] $a? $m? { addConstModifiers($c.token, $m.modList) } $ct constant_declarators) - | ev=event_declaration -> ^(EVENT[$ev.start.Token, "EVENT"] $a? $m? $ev) + | ev=event_declaration[$a.tree, $m.tree] -> $ev | p='partial' { Warning($p.line, "[UNSUPPORTED] 'partial' definition"); } (v1=void_type m3=method_declaration[$a.tree, $m.tree, $m.modList, $v1.tree, $v1.text] -> $m3 | pi=interface_declaration[$a.tree, $m.tree] -> $pi | pc=class_declaration[$a.tree, $m.tree, false /* toplevel */] -> $pc @@ -1253,10 +1253,10 @@ accessor_modifier: 'protected' 'internal'? | 'private' | 'internal' 'protected'?; /////////////////////////////////////////////////////// -event_declaration: - 'event' type - ((member_name '{') => member_name '{' event_accessor_declarations '}' - | variable_declarators ';') // typename=foo; +event_declaration[CommonTree atts, CommonTree mods]: + e='event' type + ((member_name '{') => member_name '{' event_accessor_declarations '}' -> ^(EVENT[$e.token, "EVENT"] { dupTree(atts) } { dupTree(mods) } type member_name '{' event_accessor_declarations '}') + | variable_declarators ';' -> ^(FIELD[$e.token,"FIELD"] { dupTree(atts) } { dupTree(mods) } type variable_declarators)) // typename=foo; ; event_modifiers: modifier+ ; diff --git a/CSharpTranslator/antlr3/src/CS2JTranslator/CS2JTransform/TemplateExtracter.g b/CSharpTranslator/antlr3/src/CS2JTranslator/CS2JTransform/TemplateExtracter.g index 9a20466..af84526 100644 --- a/CSharpTranslator/antlr3/src/CS2JTranslator/CS2JTransform/TemplateExtracter.g +++ b/CSharpTranslator/antlr3/src/CS2JTranslator/CS2JTransform/TemplateExtracter.g @@ -828,7 +828,7 @@ accessor_body: event_declaration: 'event' type ((member_name '{') => member_name '{' event_accessor_declarations '}' { ((ClassRepTemplate)$NSContext::currentTypeRep).Events.Add(new FieldRepTemplate($type.thetext, $member_name.name)); } - | variable_declarators[$type.thetext, true] ';') // typename=foo; + | variable_declarators[$type.thetext, false] ';') // typename=foo; { DebugDetail("Processing event declaration: " + $member_name.name); } ; event_modifiers: