Beispiel #1
0
        public DirectiveBase(TokenIteratorBase iterator, PrecompilerStack stack, IDictionary <string, bool> defines)
        {
            _iterator = iterator;
            _stack    = stack;

            _defines = defines ?? new Dictionary <string, bool>();
        }
Beispiel #2
0
        public PrecompilerClass(TokenIteratorBase iterator, IDictionary <string, bool> defines)
        {
            _iterator = iterator ?? throw new Exception("Обработчик инструкций препроцессора, не получил итератор.");
            _defines  = defines;

            _stack      = new PrecompilerStack();
            _directives = new List <DirectiveBase>();

            _directives.Add(new IfDirective(_iterator, _stack, defines));
            _directives.Add(new RegionDirective(_iterator, _stack, defines));
        }
Beispiel #3
0
        /// <summary>
        /// Список найденых токенов.
        /// </summary>
        /// <returns>Список найденых лексем и их токенов</returns>
        public IList <IToken> GetAllTokens()
        {
            IToken            token      = null;
            IList <IToken>    token_list = new List <IToken>();
            TokenIteratorBase iterator   = GetEnumerator();

            do
            {
                iterator.MoveNext();
                token = iterator.Current;
                token_list.Add(token);
            }while (token.Content != "\0");

            return(token_list);
        }
Beispiel #4
0
 public IfDirective(TokenIteratorBase iterator, PrecompilerStack stack, IDictionary <string, bool> defines) : base(iterator, stack, defines)
 {
 }
Beispiel #5
0
 public PrecompilerTokenIterator(TokenIteratorBase iterator, PrecompilerClass precompiler)
 {
     _iterator    = iterator;
     _precompiler = precompiler;
 }