Browse Source

* ILToken.cs: Add open angle bracket, and close angle bracket tokens.

svn path=/trunk/mcs/; revision=13129
Jackson Harper 23 years ago
parent
commit
170b829ed5
1 changed files with 232 additions and 227 deletions
  1. 232 227
      mcs/ilasm/scanner/ILToken.cs

+ 232 - 227
mcs/ilasm/scanner/ILToken.cs

@@ -6,231 +6,236 @@ using System;
 
 namespace Mono.ILASM {
 
-	public class ILToken : ICloneable {
-		internal int token;
-		internal object val;
-
-		public static readonly ILToken Invalid;
-		public static readonly ILToken EOF;
-
-		public static readonly ILToken Dot;
-
-		public static readonly ILToken OpenBrace;
-		public static readonly ILToken CloseBrace;
-		public static readonly ILToken OpenBracket;
-		public static readonly ILToken CloseBracket;
-		public static readonly ILToken OpenParens;
-		public static readonly ILToken CloseParens;
-		public static readonly ILToken Comma;
-		public static readonly ILToken Colon;
-		public static readonly ILToken DoubleColon;
-		public static readonly ILToken Semicolon;
-		public static readonly ILToken Assign;
-		public static readonly ILToken Star;
-		public static readonly ILToken Ampersand;
-		public static readonly ILToken Plus;
-		public static readonly ILToken Slash;
-		public static readonly ILToken Bang;
-		public static readonly ILToken Ellipsis;
-		public static readonly ILToken Dash;
-
-		private static readonly ILToken [] punctuations;
-
-		/// <summary>
-		/// </summary>
-		static ILToken ()
-		{
-			Invalid = new ILToken (-1, "invalid");
-			EOF = new ILToken (Token.EOF, "eof");
-
-			Dot = new ILToken (Token.DOT, ".");
-			OpenBrace = new ILToken (Token.OPEN_BRACE, "{");
-			CloseBrace = new ILToken (Token.CLOSE_BRACE, "}");
-			OpenBracket = new ILToken (Token.OPEN_BRACKET, "[");
-			CloseBracket = new ILToken (Token.CLOSE_BRACKET, "]");
-			OpenParens = new ILToken (Token.OPEN_PARENS, "(");
-			CloseParens = new ILToken (Token.CLOSE_PARENS, ")");
-			Comma = new ILToken (Token.COMMA, ",");
-			Colon = new ILToken (Token.COLON, ":");
-			DoubleColon = new ILToken (Token.DOUBLE_COLON, "::");
-			Semicolon = new ILToken (Token.SEMICOLON, ";");
-			Assign = new ILToken (Token.ASSIGN, "=");
-			Star = new ILToken (Token.STAR, "*");
-			Ampersand = new ILToken (Token.AMPERSAND, "&");
-			Plus = new ILToken (Token.PLUS, "+");
-			Slash = new ILToken (Token.SLASH, "/");
-			Bang = new ILToken (Token.BANG, "!");
-			Ellipsis = new ILToken (Token.ELLIPSIS, "...");
-			Dash = new ILToken (Token.DASH, "-");
-
-			punctuations = new ILToken [] {
-				OpenBrace, CloseBrace,
-				OpenBracket, CloseBracket,
-				OpenParens, CloseParens,
-				Comma, Colon, Semicolon,
-				Assign, Star, Ampersand,
-				Plus, Slash, Bang, Ellipsis
-			};
-		}
-
-		/// <summary>
-		/// </summary>
-		public ILToken ()
-		{
-		}
-
-		/// <summary>
-		/// </summary>
-		/// <param name="token"></param>
-		/// <param name="val"></param>
-		public ILToken (int token, object val)
-		{
-			this.token = token;
-			this.val = val;
-		}
-
-
-		/// <summary>
-		/// </summary>
-		/// <param name="that"></param>
-		public ILToken (ILToken that)
-		{
-			this.token = that.token;
-			this.val = that.val;
-		}
-
-
-
-		/// <summary>
-		/// </summary>
-		public int TokenId {
-			get {
-				return token;
-			}
-		}
-
-		/// <summary>
-		/// </summary>
-		public object Value {
-			get {
-				return val;
-			}
-		}
-
-
-		/// <summary>
-		/// </summary>
-		/// <param name="that"></param>
-		public virtual void CopyFrom (ILToken that)
-		{
-			this.token = that.token;
-			this.val = that.val;
-		}
-
-
-		/// <summary>
-		/// </summary>
-		/// <returns></returns>
-		public virtual object Clone ()
-		{
-			return new ILToken (this);
-		}
-
-
-		/// <summary>
-		/// </summary>
-		/// <returns></returns>
-		public override int GetHashCode ()
-		{
-			int h = token;
-			if (val != null) h ^= val.GetHashCode ();
-			return h;
-		}
-
-
-		/// <summary>
-		/// </summary>
-		/// <returns></returns>
-		public override string ToString ()
-		{
-			return (token.ToString() + " : " + (val != null ? val.ToString () : "<null>"));
-		}
-
-
-		/// <summary>
-		/// </summary>
-		/// <param name="o"></param>
-		/// <returns></returns>
-		public override bool Equals (object o)
-		{
-			bool res = (o != null);
-
-			if (res) {
-				res = Object.ReferenceEquals (this, o);
-				if (!res) {
-					res = o is ILToken;
-					if (res) {
-						ILToken that = o as ILToken;
-						res = (this.token == that.token) && (this.val.Equals (that.val));
-					}
-				}
-			}
-
-			return res;
-		}
-
-
-		private static bool EqImpl (ILToken t1, ILToken t2)
-		{
-			bool res = false;
-			if ((t1 as object) != null) {
-				res = t1.Equals (t2);
-			} else {
-				res = ((t2 as object) == null);
-			}
-
-			return res;
-		}
-
-
-		/// <summary>
-		/// </summary>
-		/// <param name="t1"></param>
-		/// <param name="t2"></param>
-		/// <returns></returns>
-		public static bool operator == (ILToken t1, ILToken t2)
-		{
-			return EqImpl (t1, t2);
-		}
-
-		/// <summary>
-		/// </summary>
-		/// <param name="t1"></param>
-		/// <param name="t2"></param>
-		/// <returns></returns>
-		public static bool operator != (ILToken t1, ILToken t2)
-		{
-			return !EqImpl (t1, t2);
-		}
-
-
-
-		/// <summary>
-		/// </summary>
-		/// <param name="ch"></param>
-		/// <returns></returns>
-		public static ILToken GetPunctuation (int ch)
-		{
-			int id = "{}[](),:;=*&+/!".IndexOf ((char) ch);
-			ILToken res = null;
-
-			if (id != -1) {
-				res = punctuations [id];
-			}
-
-			return res;
-		}
-
-
-	}
+        public class ILToken : ICloneable {
+                internal int token;
+                internal object val;
+
+                public static readonly ILToken Invalid;
+                public static readonly ILToken EOF;
+
+                public static readonly ILToken Dot;
+
+                public static readonly ILToken OpenBrace;
+                public static readonly ILToken CloseBrace;
+                public static readonly ILToken OpenBracket;
+                public static readonly ILToken CloseBracket;
+                public static readonly ILToken OpenParens;
+                public static readonly ILToken CloseParens;
+                public static readonly ILToken Comma;
+                public static readonly ILToken Colon;
+                public static readonly ILToken DoubleColon;
+                public static readonly ILToken Semicolon;
+                public static readonly ILToken Assign;
+                public static readonly ILToken Star;
+                public static readonly ILToken Ampersand;
+                public static readonly ILToken Plus;
+                public static readonly ILToken Slash;
+                public static readonly ILToken Bang;
+                public static readonly ILToken Ellipsis;
+                public static readonly ILToken Dash;
+                public static readonly ILToken OpenAngleBracket;
+                public static readonly ILToken CloseAngleBracket;
+
+                private static readonly ILToken [] punctuations;
+
+                /// <summary>
+                /// </summary>
+                static ILToken ()
+                {
+                        Invalid = new ILToken (-1, "invalid");
+                        EOF = new ILToken (Token.EOF, "eof");
+
+                        Dot = new ILToken (Token.DOT, ".");
+                        OpenBrace = new ILToken (Token.OPEN_BRACE, "{");
+                        CloseBrace = new ILToken (Token.CLOSE_BRACE, "}");
+                        OpenBracket = new ILToken (Token.OPEN_BRACKET, "[");
+                        CloseBracket = new ILToken (Token.CLOSE_BRACKET, "]");
+                        OpenParens = new ILToken (Token.OPEN_PARENS, "(");
+                        CloseParens = new ILToken (Token.CLOSE_PARENS, ")");
+                        Comma = new ILToken (Token.COMMA, ",");
+                        Colon = new ILToken (Token.COLON, ":");
+                        DoubleColon = new ILToken (Token.DOUBLE_COLON, "::");
+                        Semicolon = new ILToken (Token.SEMICOLON, ";");
+                        Assign = new ILToken (Token.ASSIGN, "=");
+                        Star = new ILToken (Token.STAR, "*");
+                        Ampersand = new ILToken (Token.AMPERSAND, "&");
+                        Plus = new ILToken (Token.PLUS, "+");
+                        Slash = new ILToken (Token.SLASH, "/");
+                        Bang = new ILToken (Token.BANG, "!");
+                        Ellipsis = new ILToken (Token.ELLIPSIS, "...");
+                        Dash = new ILToken (Token.DASH, "-");
+                        OpenAngleBracket = new ILToken (Token.OPEN_ANGLE_BRACKET, "<");
+                        CloseAngleBracket = new ILToken (Token.CLOSE_ANGLE_BRACKET, ">");
+
+                        punctuations = new ILToken [] {
+                                OpenBrace, CloseBrace,
+                                OpenBracket, CloseBracket,
+                                OpenParens, CloseParens,
+                                Comma, Colon, Semicolon,
+                                Assign, Star, Ampersand,
+                                Plus, Slash, Bang,
+                                OpenAngleBracket, CloseAngleBracket
+                        };
+                }
+
+                /// <summary>
+                /// </summary>
+                public ILToken ()
+                {
+                }
+
+                /// <summary>
+                /// </summary>
+                /// <param name="token"></param>
+                /// <param name="val"></param>
+                public ILToken (int token, object val)
+                {
+                        this.token = token;
+                        this.val = val;
+                }
+
+
+                /// <summary>
+                /// </summary>
+                /// <param name="that"></param>
+                public ILToken (ILToken that)
+                {
+                        this.token = that.token;
+                        this.val = that.val;
+                }
+
+
+
+                /// <summary>
+                /// </summary>
+                public int TokenId {
+                        get {
+                                return token;
+                        }
+                }
+
+                /// <summary>
+                /// </summary>
+                public object Value {
+                        get {
+                                return val;
+                        }
+                }
+
+
+                /// <summary>
+                /// </summary>
+                /// <param name="that"></param>
+                public virtual void CopyFrom (ILToken that)
+                {
+                        this.token = that.token;
+                        this.val = that.val;
+                }
+
+
+                /// <summary>
+                /// </summary>
+                /// <returns></returns>
+                public virtual object Clone ()
+                {
+                        return new ILToken (this);
+                }
+
+
+                /// <summary>
+                /// </summary>
+                /// <returns></returns>
+                public override int GetHashCode ()
+                {
+                        int h = token;
+                        if (val != null) h ^= val.GetHashCode ();
+                        return h;
+                }
+
+
+                /// <summary>
+                /// </summary>
+                /// <returns></returns>
+                public override string ToString ()
+                {
+                        return (token.ToString() + " : " + (val != null ? val.ToString () : "<null>"));
+                }
+
+
+                /// <summary>
+                /// </summary>
+                /// <param name="o"></param>
+                /// <returns></returns>
+                public override bool Equals (object o)
+                {
+                        bool res = (o != null);
+
+                        if (res) {
+                                res = Object.ReferenceEquals (this, o);
+                                if (!res) {
+                                        res = o is ILToken;
+                                        if (res) {
+                                                ILToken that = o as ILToken;
+                                                res = (this.token == that.token) && (this.val.Equals (that.val));
+                                        }
+                                }
+                        }
+
+                        return res;
+                }
+
+
+                private static bool EqImpl (ILToken t1, ILToken t2)
+                {
+                        bool res = false;
+                        if ((t1 as object) != null) {
+                                res = t1.Equals (t2);
+                        } else {
+                                res = ((t2 as object) == null);
+                        }
+
+                        return res;
+                }
+
+
+                /// <summary>
+                /// </summary>
+                /// <param name="t1"></param>
+                /// <param name="t2"></param>
+                /// <returns></returns>
+                public static bool operator == (ILToken t1, ILToken t2)
+                {
+                        return EqImpl (t1, t2);
+                }
+
+                /// <summary>
+                /// </summary>
+                /// <param name="t1"></param>
+                /// <param name="t2"></param>
+                /// <returns></returns>
+                public static bool operator != (ILToken t1, ILToken t2)
+                {
+                        return !EqImpl (t1, t2);
+                }
+
+
+
+                /// <summary>
+                /// </summary>
+                /// <param name="ch"></param>
+                /// <returns></returns>
+                public static ILToken GetPunctuation (int ch)
+                {
+                        int id = "{}[](),:;=*&+/!<>".IndexOf ((char) ch);
+                        ILToken res = null;
+
+                        if (id != -1) {
+                                res = punctuations [id];
+                        }
+
+                        return res;
+                }
+
+
+        }
 }