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"]
| rt=type ( (member_name '(') => method_declaration[$rt.thetext]
| (member_name '{') => property_declaration[$rt.thetext]
| (member_name '.' 'this') => type_name '.' indexer_declaration
| indexer_declaration //this
| (member_name '.' 'this') => type_name '.' indexer_declaration[$rt.thetext, $type_name.thetext+"."]
| indexer_declaration[$rt.thetext, ""] //this
| field_declaration[$rt.thetext] // qid
| operator_declaration
)
@ -774,7 +774,7 @@ accessor_body:
///////////////////////////////////////////////////////
event_declaration:
'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;
;
event_modifiers:
@ -945,8 +945,8 @@ struct_member_declaration:
| 'void' method_declaration["System.Void"]
| rt=type ( (member_name '(') => method_declaration[$rt.thetext]
| (member_name '{') => property_declaration[$rt.thetext]
| (member_name '.' 'this') => type_name '.' indexer_declaration
| indexer_declaration //this
| (member_name '.' 'this') => type_name '.' indexer_declaration[$rt.thetext, $type_name.thetext+"."]
| indexer_declaration[$rt.thetext, ""] //this
| field_declaration[$rt.thetext] // qid
| operator_declaration
)
@ -962,11 +962,13 @@ struct_member_declaration:
///////////////////////////////////////////////////////
indexer_declaration:
indexer_declarator '{' accessor_declarations '}' ;
indexer_declarator:
indexer_declaration [string returnType, string prefix]:
indexer_declarator[$returnType, $prefix] '{' accessor_declarations '}' ;
indexer_declarator [string returnType, string prefix]:
//(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: