using System;

namespace Parser.Global.LexerSpace
{
    /// <summary>
    /// Fournisseur de Lexers partiels pour extraire les tokens d'un script source
    /// </summary>
	public interface IPartialLexerFactory
	{
		bool Add(IPartialLexer lexer);

        
        /// <summary>
        /// Extraction des tokens lus dans le script source.
        /// Les tokens sont reconnus par les partials lexers qui sont appliqués les uns après les autres
        /// </summary>
        /// <param name="source"></param>
        /// <returns></returns>
		IToken Lex(Tokenizer source);
	}

}
