Beispiel #1
0
        private TokenRegex()
        {
            Regexes.Add(TokenType.Comment, new Regex(@"//.*"));

            Regexes.Add(TokenType.Whitespace, new Regex(@"\s+"));
            Regexes.Add(TokenType.String, new Regex(@"""[^""]+"""));
            Regexes.Add(TokenType.Number, new Regex(@"[0-9]+"));
            Regexes.Add(TokenType.Operator, new Regex(@"\+|-|\*|\/|>=|<=|==|!=|<|>"));

            // Characters
            Regexes.Add(TokenType.Equals, new Regex(@"="));
            Regexes.Add(TokenType.OpenBracket, new Regex(@"\("));
            Regexes.Add(TokenType.CloseBracket, new Regex(@"\)"));
            Regexes.Add(TokenType.Comma, new Regex(@","));

            // Keywords
            Regexes.Add(TokenType.If, new Regex(@"if"));
            Regexes.Add(TokenType.EndIf, new Regex(@"end if"));
            Regexes.Add(TokenType.Else, new Regex(@"else"));
            Regexes.Add(TokenType.Then, new Regex(@"then"));
            Regexes.Add(TokenType.While, new Regex(@"while"));
            Regexes.Add(TokenType.EndWhile, new Regex(@"end while"));
            Regexes.Add(TokenType.Nil, new Regex(@"nil|NIL"));
            Regexes.Add(TokenType.False, new Regex(@"false|FALSE"));
            Regexes.Add(TokenType.True, new Regex(@"true|TRUE"));
            Regexes.Add(TokenType.Local, new Regex(@"local"));
            Regexes.Add(TokenType.Return, new Regex(@"return"));
            Regexes.Add(TokenType.End, new Regex(@"end"));
            Regexes.Add(TokenType.Function, new Regex(@"function"));

            Regexes.Add(TokenType.Identifier, new Regex(@"[a-zA-Z_]\w*")); // Must come after keywords (don't want to overwrite keywords with identifiers!)
        }
        private Regex CreateRegex(string pattern)
        {
            Regex regex;

            if (parameters == null)
            {
                if (!Regexes.TryGetValue(pattern, out regex))
                {
                    Regexes.Add(pattern, regex = new Regex(pattern));
                }
            }
            else
            {
                var key = new KeyValuePair <string, RegexOptions>(pattern, ignorePatternWhitespace);
                if (!RegexesParameters.TryGetValue(key, out regex))
                {
                    RegexesParameters.Add(key, regex = new Regex(pattern, ignorePatternWhitespace));
                }
            }
            return(regex);
        }
Beispiel #3
0
 private INIHighlighter()
 {
     Regexes.Add(new Pair <Regex, Color>(new Regex(@"(#|;).*", ropt), Color.ForestGreen));
     Regexes.Add(new Pair <Regex, Color>(new Regex(@"^\s*\[.*\]", ropt), Color.Indigo));
     Regexes.Add(new Pair <Regex, Color>(new Regex(@"^([^\=])+", ropt), Color.Blue));
 }
        internal void AddFilter(string v)
        {
            switch (v.ToLower())
            {
            case "extensions":
            {
                if (string.IsNullOrEmpty(TextBoxExtension))
                {
                    return;
                }

                // Add leading dot if not present.
                if (!TextBoxExtension.StartsWith("."))
                {
                    TextBoxExtension = "." + TextBoxExtension;
                }

                Extensions.Add(TextBoxExtension.ToLower());
                TextBoxExtension = string.Empty;
                break;
            }

            case "directories":
            {
                if (string.IsNullOrEmpty(TextBoxDirectories))
                {
                    return;
                }

                Directories.Add(TextBoxDirectories.ToLower());
                TextBoxDirectories = string.Empty;
                break;
            }

            case "regex":
            {
                if (string.IsNullOrEmpty(TextBoxRegex))
                {
                    return;
                }

                Regexes.Add(TextBoxRegex.ToLower());
                TextBoxRegex = string.Empty;
                break;
            }

            case "strings":
            {
                if (string.IsNullOrEmpty(TextBoxStrings))
                {
                    return;
                }

                Strings.Add(TextBoxStrings.ToLower());
                TextBoxStrings = string.Empty;
                break;
            }

            default:
                break;
            }
        }