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