+2003-03-15 Jackson Harper <jackson@latitudegeo.com>
+
+ * ILParser.jay: Create external method references
+
2003-03-14 Jackson Harper <jackson@latitudegeo.com>
* ILParser.jay: Emit instructions that take a method def as a single param
| external_method_ref\r
;\r
\r
+external_method_ref : type_ref external_type_ref DOUBLE_COLON name1 OPEN_PARENS arg_list CLOSE_PARENS\r
+ {\r
+ TypeRef parent = (TypeRef) $1;\r
+ TypeRef extern_type = (TypeRef) $2;\r
+ ClassRef class_ref = (ClassRef) extern_type.Type;\r
+ PEAPI.Type[] type_array;\r
+ if ($6 != null) {\r
+ ArrayList param_list = $6 as ArrayList;\r
+ int index = 0;\r
+ type_array = new PEAPI.Type[param_list.Count];\r
+ foreach (DictionaryEntry entry in param_list) {\r
+ type_array[index] = ((TypeRef)entry.Value).Type;\r
+ index++;\r
+ }\r
+ } else {\r
+ type_array = new PEAPI.Type[0];\r
+ } \r
+ $$ = class_ref.AddMethod ((string) $4, parent.Type, type_array);\r
+ }\r
+ ; \r
+\r
internal_method_ref : type_ref internal_type_ref DOUBLE_COLON name1 OPEN_PARENS arg_list CLOSE_PARENS\r
{ \r
TypeRef parent, return_type;\r