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