view Implab/Formats/ScannerContext.cs @ 203:4d9830a9bbb8 v2

Added 'Fail' method to RunnableComponent which allows component to move from Running to Failed state. Added PollingComponent a timer based runnable component More tests Added FailPromise a thin class to wrap exceptions Fixed error handling in SuccessPromise classes.
author cin
date Tue, 18 Oct 2016 17:49:54 +0300
parents a0ff6a0e9c44
children
line wrap: on
line source

namespace Implab.Formats {
    /// <summary>
    /// Represents a scanner configuration usefull to recongnize token, based on the DFA.
    /// </summary>
    public class ScannerContext<TTag> {

        public int[,] Dfa { get; private set; }

        public bool[] Final { get; private set; }

        public TTag[][] Tags { get; private set; }

        public int State { get; private set; }

        public int[] Alphabet { get; private set; }

        public ScannerContext(int[,] dfa, bool[] final, TTag[][] tags, int state, int[] alphabet) {
            Dfa = dfa;
            Final = final;
            Tags = tags;
            State = state;
            Alphabet = alphabet;
        }

        public bool Execute(TextScanner scanner, out TTag[] tag) {
            return scanner.ReadToken(Dfa, Final, Tags, State, Alphabet, out tag);
        }
    }
}