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); }
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"); }
/// <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); }