public void AppendCharacterClass(LsmCharacterClass charClass) { LsmClassMatchRule constantRule = _lastState.MatchRules.GetRuleByClass(charClass); if (constantRule == null) { constantRule = new LsmClassMatchRule(charClass); _lastState.MatchRules.Add(constantRule); if (_lastState == _rootState) constantRule.Actions.EnsureClearTokenAction(); } constantRule.Actions.EnsureAcceptCharAction(); constantRule.Actions.EnsureAdvanceAction(); _lastState = constantRule.Actions.GetTransitionDestination(); if (_lastState == null) { _lastState = new LsmState(); _document.States.Add(_lastState); constantRule.Actions.SetTransitionDestination(_lastState); } }
public LsmClassMatchRule(LsmCharacterClass characterClass) { _characterClass = characterClass; }