2004-06-10 Miguel de Icaza <miguel@ximian.com>
[mono.git] / mcs / mcs / cs-tokenizer.cs
index b423949d7d94f818fe6ff354efa3b0248e7fcf24..5191948f407398ec12fa615e59c95e1ead4eb4fb 100755 (executable)
@@ -208,6 +208,7 @@ namespace Mono.CSharp
                {\r
                        keywords = new CharArrayHashtable [64];\r
 \r
+                       AddKeyword ("__arglist", Token.ARGLIST);\r
                        AddKeyword ("abstract", Token.ABSTRACT);\r
                        AddKeyword ("as", Token.AS);\r
                        AddKeyword ("add", Token.ADD);\r
@@ -1702,7 +1703,7 @@ namespace Mono.CSharp
                        // Optimization: avoids doing the keyword lookup\r
                        // on uppercase letters and _\r
                        //\r
-                       if (s >= 'a'){\r
+                       if (s >= 'a' || s == '_'){\r
                                int keyword = GetKeyword (id_builder, pos);\r
                                if (keyword != -1 && !quoted)\r
                                        return keyword;\r
@@ -1716,8 +1717,6 @@ namespace Mono.CSharp
                        if (identifiers [pos] != null) {\r
                                val = identifiers [pos][id_builder];\r
                                if (val != null) {\r
-                                       if (val.Equals ("__arglist"))\r
-                                               return Token.ARGLIST;\r
                                        return Token.IDENTIFIER;\r
                                }\r
                        }\r
@@ -1725,8 +1724,6 @@ namespace Mono.CSharp
                                identifiers [pos] = new CharArrayHashtable (pos);\r
 \r
                        val = new String (id_builder, 0, pos);\r
-                       if (val.Equals ("__arglist"))\r
-                               return Token.ARGLIST;\r
 \r
                        char [] chars = new char [pos];\r
                        Array.Copy (id_builder, chars, pos);\r