* ILParser.jay: Add generic type constraints and tokens used to
authorJackson Harper <jackson@novell.com>
Wed, 16 Jul 2003 06:30:44 +0000 (06:30 -0000)
committerJackson Harper <jackson@novell.com>
Wed, 16 Jul 2003 06:30:44 +0000 (06:30 -0000)
create them

svn path=/trunk/mcs/; revision=16299

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

index 870913d2a75d8942c16eb8dc86f2debb5f7914f6..973af9bd48536eccfed7802b7c71f4c354fe3e2a 100644 (file)
@@ -1,3 +1,8 @@
+2003-07-15 Jackson Harper <jackson@latitudegeo.com>
+
+       * ILParser.jay: Add generic type constraints and tokens used to
+       create them
+               
 2003-07-16  Peter Williams  <peter@newton.cx>
 
        * .cvsignore: ILParser.cs has been moved.
index c6c83143a25d071525bad64e984ed66dfc67c248..61425021a268a7cdf105ae530167b1f19fc0ff49 100644 (file)
@@ -118,6 +118,7 @@ namespace Mono.ILASM {
 %token D_CLASS\r
 %token D_COMTYPE\r
 %token D_CONFIG\r
+%token D_CONSTRAINT\r
 %token D_IMAGEBASE\r
 %token D_CORFLAGS\r
 %token D_CTOR\r
@@ -352,6 +353,7 @@ namespace Mono.ILASM {
 %token K_STRING\r
 %token K_TRUE\r
 %token K_FALSE\r
+%token K_IN\r
 \r
 /* end generated */\r
 \r
@@ -412,6 +414,12 @@ language_decl              : D_LANGUAGE SQSTRING
                        | D_LANGUAGE SQSTRING COMMA SQSTRING COMMA SQSTRING\r
                        ;\r
 \r
+constraint_decl         : D_CONSTRAINT BANG int32 K_IS type\r
+                          {\r
+                                codegen.CurrentTypeDef.AddGenericConstraint ((int) $3, (ITypeRef) $5);\r
+                          }\r
+                        ;\r
+                        \r
 vtfixup_decl           : D_VTFIXUP OPEN_BRACKET int32 CLOSE_BRACKET \r
                          vtfixup_attr K_AT id\r
                        ;\r
@@ -611,6 +619,7 @@ class_decl          : method_all
                          K_WITH call_conv type type_spec DOUBLE_COLON method_name\r
                          OPEN_PARENS sig_args CLOSE_PARENS\r
                        | language_decl\r
+                        | constraint_decl\r
                        ;\r
 \r
 type                   : K_CLASS class_ref\r