YAMP.ParseEngine.Advance C# (CSharp) Method

Advance() private method

Advances by one character.
private Advance ( ) : ParseEngine
return ParseEngine
        internal ParseEngine Advance()
        {
            if (IsNewLine(_characters[_ptr]))
            {
                _currentLine++;
                _currentColumn = 1;
            }
            else
            {
                _currentColumn++;
            }

            _ptr++;
            return this;
        }

Same methods

ParseEngine::Advance ( Int32 shift ) : ParseEngine

Usage Example

Exemplo n.º 1
0
        public override Expression Scan(ParseEngine engine)
        {
            var kw    = new ForKeyword(engine.CurrentLine, engine.CurrentColumn, engine.Query);
            var start = engine.Pointer;
            var index = engine.Advance(Token.Length).Skip().Pointer;
            var chars = engine.Characters;

            if (index == chars.Length)
            {
                kw.Length = engine.Pointer - start;
                engine.AddError(new YAMPForArgumentsMissing(engine));
                return(kw);
            }

            if (chars[index] == '(')
            {
                var ln  = engine.CurrentLine;
                var col = engine.CurrentColumn;
                kw.Initialization    = engine.Advance().ParseStatement();
                kw.Condition         = engine.ParseStatement();
                kw.Condition.IsMuted = false;
                kw.End = engine.ParseStatement(')', e => new YAMPBracketNotClosedError(ln, col));
                SetMarker(engine);
                kw.Body = engine.ParseStatement();
                UnsetMarker(engine);
            }
            else
            {
                engine.AddError(new YAMPForArgumentsMissing(engine));
            }

            kw.Length = engine.Pointer - start;
            return(kw);
        }
All Usage Examples Of YAMP.ParseEngine::Advance