/// <summary> /// Detect whether the current character matches CSS Resolving Context /// </summary> /// <param name="c">The character to match</param> public Boolean Match(char c) { if (noFilter) { return(true); } NameDetector currentDetector = null; Boolean hasDetector = false; //Indicates whether or not there's available property name dectector for (int i = detectors.Length - 1; i >= 0; i--) { var tmpDetector = detectors[i]; if (!tmpDetector.Enabled) { continue; } var result = detectors[i].Match(c); if (result != MatchResult.Continue) { tmpDetector.Enabled = false; if (result == MatchResult.Success) { currentDetector = detectors[i]; } } else if (!hasDetector) { hasDetector = true; } } successDetector = currentDetector; return(currentDetector != null || hasDetector); //$$$ }
public void AddFilters(params string[] keys) { if (keys.Length < 1) throw new ArgumentNullException(); detectors = new NameDetector[keys.Length]; for (int i = 0; i < keys.Length; i++) { detectors[i] = new NameDetector(keys[i]); } noFilter = false; }
public void AddFilters(params string[] keys) { if (keys.Length < 1) { throw new ArgumentNullException(); } detectors = new NameDetector[keys.Length]; for (int i = 0; i < keys.Length; i++) { detectors[i] = new NameDetector(keys[i]); } noFilter = false; }
/// <summary> /// Reset context variables /// </summary> public void Reset() { this.Styles.Clear(); this.styleName.Clear(); this.properties.Clear(); this.propertyName.Clear(); this.propertyText.Clear(); this.PreviousState = null; this.successDetector = null; IgnoreSpace = true; IgnoreProperty = false; IsComment = false; position = 0; propertyTextPosition = 0; styleLineNumber = 1; lineNumber = 1; }
/// <summary> /// Detect whether the current character matches CSS Resolving Context /// </summary> /// <param name="c">The character to match</param> public Boolean Match(char c) { if (noFilter) return true; NameDetector currentDetector = null; Boolean hasDetector = false; //Indicates whether or not there's available property name dectector for (int i = detectors.Length - 1; i >= 0; i--) { var tmpDetector = detectors[i]; if (!tmpDetector.Enabled) continue; var result = detectors[i].Match(c); if (result != MatchResult.Continue) { tmpDetector.Enabled = false; if (result == MatchResult.Success) currentDetector = detectors[i]; } else if (!hasDetector) hasDetector = true; } successDetector = currentDetector; return currentDetector != null || hasDetector; //$$$ }