YAMP.ParseEngine.SetPointer C# (CSharp) Method

SetPointer() private method

Sets the character pointer to a new position.
private SetPointer ( Int32 newPosition ) : ParseEngine
newPosition System.Int32 The new position of the character pointer ptr.
return ParseEngine
        internal ParseEngine SetPointer(Int32 newPosition)
        {
            var shift = newPosition > _ptr ? 1 : -1;

            while (_ptr != newPosition)
            {
                if (IsNewLine(_characters[_ptr]))
                {
                    _currentLine += shift;
                    _currentColumn = 1;
                }
                else
                {
                    _currentColumn += shift;
                }

                _ptr += shift;
            }

            return this;
        }

Usage Example

Exemplo n.º 1
0
        public override Expression Scan(ParseEngine engine)
        {
            var index = engine.Pointer;
            var chars = engine.Characters;

            if (ParseEngine.IsIdentifierStart(chars[index]))
            {
                index++;

                while (index < chars.Length && ParseEngine.IsIdentifierPart(chars[index]))
                {
                    index++;
                }

                var name = new String(chars, engine.Pointer, index - engine.Pointer);

                if (engine.UseKeywords)
                {
                    var keyword = engine.Elements.FindKeywordExpression(name, engine);

                    if (keyword != null)
                    {
                        return(keyword);
                    }
                }

                var exp = new SymbolExpression(engine, name);
                engine.SetPointer(index);
                return(exp);
            }

            return(null);
        }
All Usage Examples Of YAMP.ParseEngine::SetPointer