* ILParser.jay: Add implemented interfaces
authorJackson Harper <jackson@novell.com>
Sun, 9 Mar 2003 18:05:37 +0000 (18:05 -0000)
committerJackson Harper <jackson@novell.com>
Sun, 9 Mar 2003 18:05:37 +0000 (18:05 -0000)
svn path=/trunk/mcs/; revision=12381

mcs/ilasm/parser/ChangeLog
mcs/ilasm/parser/ILParser.jay

index ac70fcf07d2d058f27c3e3e1f8aa2ca46547ea19..7129723cb1e75d55676ffc57e6fa6d1cd1f125bd 100644 (file)
@@ -1,3 +1,7 @@
+2003-03-09 Jackson Harper <jackson@latitudegeo.com>
+
+       * ILParser.jay: Add implemented interfaces
+
 2003-03-08 Jackson Harper <jackson@latitudegeo.com>
 
        * ILParser.jay: Create method attributes
index 45eec646d8b553193e18074f2dab13d95ff06331..104dd39a3e3c4e9952041d43ad3f36d03661ac08 100644 (file)
@@ -449,7 +449,12 @@ classHead               : D_CLASS type_attr id extendsClause implClause
                                } else {\r
                                        codegen.AddClass ((TypeAttr)$2, (string) $3, null);\r
                                }\r
-                               // TODO: extends/implements\r
+                               \r
+                               ArrayList impl_list = (ArrayList) $5;\r
+                               if (impl_list != null) {\r
+                                       foreach (Class klass in impl_list)\r
+                                               codegen.CurrentClass.AddImplementedInterface (klass);\r
+                               }\r
                        }\r
                        ;\r
 \r
@@ -510,11 +515,20 @@ extendsClause           : /* EMPTY */
                        ;\r
 \r
 implClause              : /* EMPTY */\r
-                       | K_IMPLEMENTS classNames\r
+                       | K_IMPLEMENTS classNames       {$$ = $2; }\r
                        ;\r
 \r
-classNames              : classNames COMMA className \r
-                       | className \r
+classNames              : classNames COMMA type_ref\r
+                         {\r
+                               ArrayList class_list = (ArrayList) $1;\r
+                               class_list.Add ($3);\r
+                         }\r
+                       | type_ref\r
+                         {\r
+                               ArrayList class_list = new ArrayList ();\r
+                               class_list.Add ($1);\r
+                               $$ = class_list;\r
+                         }\r
                        ;\r
 \r
 classDecls              : /* EMPTY */\r