1
0
mirror of https://github.com/twiglet/cs2j.git synced 2025-01-18 13:15:17 +01:00

complete events. add indexers

This commit is contained in:
Kevin Glynn 2010-11-01 10:26:58 +01:00
parent f0c66340c0
commit d971e37728

View File

@ -184,8 +184,8 @@ class_member_declaration:
| 'void' method_declaration["System.Void"] | 'void' method_declaration["System.Void"]
| rt=type ( (member_name '(') => method_declaration[$rt.thetext] | rt=type ( (member_name '(') => method_declaration[$rt.thetext]
| (member_name '{') => property_declaration[$rt.thetext] | (member_name '{') => property_declaration[$rt.thetext]
| (member_name '.' 'this') => type_name '.' indexer_declaration | (member_name '.' 'this') => type_name '.' indexer_declaration[$rt.thetext, $type_name.thetext+"."]
| indexer_declaration //this | indexer_declaration[$rt.thetext, ""] //this
| field_declaration[$rt.thetext] // qid | field_declaration[$rt.thetext] // qid
| operator_declaration | operator_declaration
) )
@ -774,7 +774,7 @@ accessor_body:
/////////////////////////////////////////////////////// ///////////////////////////////////////////////////////
event_declaration: event_declaration:
'event' type 'event' type
((member_name '{') => member_name '{' event_accessor_declarations '}' ((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, true] ';') // typename=foo;
; ;
event_modifiers: event_modifiers:
@ -945,8 +945,8 @@ struct_member_declaration:
| 'void' method_declaration["System.Void"] | 'void' method_declaration["System.Void"]
| rt=type ( (member_name '(') => method_declaration[$rt.thetext] | rt=type ( (member_name '(') => method_declaration[$rt.thetext]
| (member_name '{') => property_declaration[$rt.thetext] | (member_name '{') => property_declaration[$rt.thetext]
| (member_name '.' 'this') => type_name '.' indexer_declaration | (member_name '.' 'this') => type_name '.' indexer_declaration[$rt.thetext, $type_name.thetext+"."]
| indexer_declaration //this | indexer_declaration[$rt.thetext, ""] //this
| field_declaration[$rt.thetext] // qid | field_declaration[$rt.thetext] // qid
| operator_declaration | operator_declaration
) )
@ -962,11 +962,13 @@ struct_member_declaration:
/////////////////////////////////////////////////////// ///////////////////////////////////////////////////////
indexer_declaration: indexer_declaration [string returnType, string prefix]:
indexer_declarator '{' accessor_declarations '}' ; indexer_declarator[$returnType, $prefix] '{' accessor_declarations '}' ;
indexer_declarator: indexer_declarator [string returnType, string prefix]:
//(type_name '.')? //(type_name '.')?
'this' '[' formal_parameter_list ']' ; 'this' '[' fpl=formal_parameter_list ']'
{ ((InterfaceRepTemplate)$NSContext::currentTypeRep).Indexers.Add(new MethodRepTemplate($returnType, $prefix+"this", null, $fpl.paramlist)); }
;
/////////////////////////////////////////////////////// ///////////////////////////////////////////////////////
operator_declaration: operator_declaration: