private readonly TokenContext context_; // holds single instance of all states and token source

        //----< initialize state machine >-------------------------------

        public Toker()
        {
            context_ = new TokenContext(); // context is glue that holds all state machine parts 
        }
 public PunctuationState(TokenContext context)
 {
     context_ = context;
 }
        private StreamReader fs_; // physical source of text

        public TokenSourceFile(TokenContext context)
        {
            context_ = context;
        }
 public SingleQuoteState(TokenContext context)
 {
     context_ = context;
 }
 public DoubleQuoteState(TokenContext context)
 {
     context_ = context;
 }
 public MultiLineCommentState(TokenContext context)
 {
     context_ = context;
 }
 public SingleLineCommentState(TokenContext context)
 {
     context_ = context;
 }
 public AlphaNumState(TokenContext context)
 {
     context_ = context;
 }
 public NewLineState(TokenContext context)
 {
     context_ = context;
 }
 public WhiteSpaceState(TokenContext context)
 {
     context_ = context;
 }