Beispiel #1
0
        private static Token GetPairedToken(Token token)
        {
            if (token is Token.BeginBrace)
            {
                return(new Token.EndBrace(true));
            }
            if (token is Token.BeginQuote)
            {
                return(new Token.EndQuote());
            }
            if (token is Token.BeginRound)
            {
                return(new Token.EndRound());
            }
            if (token is Token.BeginSquare)
            {
                return(new Token.EndSquare());
            }

            if (token is Token.EndBrace)
            {
                return(new Token.BeginBrace(true));
            }
            if (token is Token.EndQuote)
            {
                return(new Token.BeginQuote());
            }
            if (token is Token.EndRound)
            {
                return(new Token.BeginRound());
            }
            if (token is Token.EndSquare)
            {
                return(new Token.BeginSquare());
            }

            Token.Keyword kwd = token as Token.Keyword;

            if (kwd != null)
            {
                if (kwd.name == "if")
                {
                    return(new Token.Keyword("else"));
                }
                if (kwd.name == "else")
                {
                    return(new Token.Keyword("if"));
                }
            }

            return(null);
        }
Beispiel #2
0
        public static bool IsOpenToken(Token token)
        {
            if (token is Token.BeginBrace)
            {
                return(true);
            }
            if (token is Token.BeginQuote)
            {
                return(true);
            }
            if (token is Token.BeginRound)
            {
                return(true);
            }
            if (token is Token.BeginSquare)
            {
                return(true);
            }

            if (token is Token.EndBrace)
            {
                return(false);
            }
            if (token is Token.EndQuote)
            {
                return(false);
            }
            if (token is Token.EndRound)
            {
                return(false);
            }
            if (token is Token.EndSquare)
            {
                return(false);
            }

            Token.Keyword kwd = token as Token.Keyword;

            if (kwd != null)
            {
                if (kwd.name == "if")
                {
                    return(true);
                }
                if (kwd.name == "else")
                {
                    return(false);
                }
            }

            throw new ArgumentException(string.Format("The token '{0}' not a brace!", token), "token");
        }
Beispiel #3
0
        /// <summary>
        /// Return predicate function which check it argument is same token .
        /// </summary>
        private static Predicate <Token> GetMatchBracePredicate(Token token)
        {
            if (token is Token.BeginBrace)
            {
                return(t => t is Token.BeginBrace);
            }
            if (token is Token.BeginQuote)
            {
                return(t => t is Token.BeginQuote);
            }
            if (token is Token.BeginRound)
            {
                return(t => t is Token.BeginRound);
            }
            if (token is Token.BeginSquare)
            {
                return(t => t is Token.BeginSquare);
            }

            if (token is Token.EndBrace)
            {
                return(t => t is Token.EndBrace);
            }
            if (token is Token.EndQuote)
            {
                return(t => t is Token.EndQuote);
            }
            if (token is Token.EndRound)
            {
                return(t => t is Token.EndRound);
            }
            if (token is Token.EndSquare)
            {
                return(t => t is Token.EndSquare);
            }

            Token.Keyword kwd = token as Token.Keyword;

            if (kwd != null)
            {
                if (kwd.name == "if")
                {
                    return delegate(Token t)
                           {
                               Token.Keyword kwd1 = t as Token.Keyword;

                               return kwd1 != null && kwd1.name == "if";
                           }
                }
                ;
                if (kwd.name == "else")
                {
                    return delegate(Token t)
                           {
                               Token.Keyword kwd1 = t as Token.Keyword;
                               return kwd1 != null && kwd1.name == "else";
                           }
                }
                ;
            }

            return(null);
        }