private Lexer(string text, TextReader reader, LexerBehavior behavior, LexerSettings settings) { if (settings == null) { settings = LexerSettings.Default; } else { settings = settings.Clone(); } this.text = text; this.reader = reader; this.behavior = behavior; this.settings = settings; if (settings.Symbols != null) { foreach (KeyValuePair <string, int> entry in settings.Symbols) { int len = entry.Key.Length; if (len > maxSymLen) { maxSymLen = len; } } } Reset(); }