Exemplo n.º 1
0
 public CodeSetShift(INode predecessor, CodeSetType codeSet, HighModeChange highModeChange) : base(predecessor)
 {
     _codeSet        = codeSet;
     _highModeChange = highModeChange;
     FinalCodeSet    = predecessor.FinalCodeSet;
     Length          = 1;
     _highMode       = highModeChange.Instantiate();
 }
Exemplo n.º 2
0
 public CodeSetStart(CodeSetType codeSet, int length, bool isTerminal, HighModeChange highModeChange)
 {
     _codeSet        = codeSet;
     _highModeChange = highModeChange;
     _highMode       = _highModeChange.Instantiate();
     Length          = length;
     IsTerminal      = isTerminal;
 }
Exemplo n.º 3
0
 public CodeSetRun(INode predecessor, CodeSetType codeSet, int length, bool isTerminal,
                   HighModeChange highModeChange) : base(predecessor)
 {
     _highModeChange   = highModeChange;
     _needsChangeOfSet = predecessor.FinalCodeSet != codeSet;
     FinalCodeSet      = codeSet;
     Length            = length;
     IsTerminal        = isTerminal;
     _highMode         = highModeChange.Instantiate();
 }
Exemplo n.º 4
0
        public static IHighMode Instantiate(this HighModeChange mode)
        {
            switch (mode)
            {
            case HighModeChange.Keep:
                return(Keep.Instance);

            case HighModeChange.Shift:
                return(Shift.Instance);

            case HighModeChange.Toggle:
                return(Toggle.Instance);

            default:
                throw new ArgumentOutOfRangeException(nameof(mode), mode, null);
            }
        }